US20140169476A1 - Method and Device for Encoding a Sequence of Images and Method and Device for Decoding a Sequence of Image - Google Patents
Method and Device for Encoding a Sequence of Images and Method and Device for Decoding a Sequence of Image Download PDFInfo
- Publication number
- US20140169476A1 US20140169476A1 US14/123,941 US201214123941A US2014169476A1 US 20140169476 A1 US20140169476 A1 US 20140169476A1 US 201214123941 A US201214123941 A US 201214123941A US 2014169476 A1 US2014169476 A1 US 2014169476A1
- Authority
- US
- United States
- Prior art keywords
- motion information
- predictor
- predictors
- motion
- information predictors
- 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.)
- Abandoned
Links
Images
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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H04N19/00575—
-
- H04N19/00684—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/513—Processing of motion vectors
- H04N19/517—Processing of motion vectors by encoding
- H04N19/52—Processing of motion vectors by encoding by predictive 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/65—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using error resilience
-
- 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
- H04N19/89—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving methods or arrangements for detection of transmission errors at the decoder
Definitions
- the present invention concerns a method and device for encoding a sequence of digital images and a method and device for decoding a corresponding bitstream.
- the invention further relates to a method and device for deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image
- the invention belongs to the field of digital signal processing, and in particular to the field of video compression using motion compensation to reduce spatial and temporal redundancies in video streams.
- Video compression formats such as for example H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, use block-based discrete cosine transform (DCT) and motion compensation to remove spatial and temporal redundancies. They can be referred to as predictive video formats.
- DCT discrete cosine transform
- Each frame or image of the video signal is divided into slices which are encoded and can be decoded independently.
- a slice is typically a rectangular portion of the frame, or more generally, a portion of a frame or an entire frame.
- each slice is divided into macroblocks (MBs), and each macroblock is further divided into blocks, typically blocks of 8 ⁇ 8 pixels.
- the encoded frames are of two types: temporal predicted frames (either predicted from one reference frame called P-frames or predicted from two reference frames called B-frames) and non temporal predicted frames (called Intra frames or I-frames).
- Temporal prediction consists in finding in a reference frame, either a previous or a future frame of the video sequence, an image portion or reference area which is the closest to the block to encode. This step is known as motion estimation.
- the block is predicted using the reference area (motion compensation)—the difference between the block to encode and the reference portion is encoded, along with an item of motion information relative to the motion vector which indicates the reference area to use for motion compensation.
- motion vectors are encoded with respect to a median predictor computed from the motion vectors situated in a causal neighbourhood of the block to encode, for example from the blocks situated above and to the left of the block to encode. Only the difference, also called residual motion vector, between the median predictor and the current block motion vector is encoded.
- Encoding using residual motion vectors saves some bitrate, but necessitates that the decoder performs the same computation of the motion vector predictor in order to decode the value of the motion vector of a block to decode.
- the residual motion information comprises the residual motion vector, i.e. the difference between the actual motion vector of the block to encode and the selected motion vector predictor, and an item of information indicating the selected motion vector predictor, such as for example an encoded value of the index of the selected motion vector predictor.
- HEVC High Efficiency Video Coding
- the 3 spatial motion vector predictors are taken from the block situated to the left of the block to encode (V 3 ), the block situated above (V 2 ) and from one of the blocks situated at the respective corners of the block to encode, according to a predetermined rule of availability.
- This motion vector predictor selection scheme is called Advanced Motion Vector Prediction (AMVP) which allows the selection of the best predictor from a given set.
- AMVP Advanced Motion Vector Prediction
- the set of motion vector predictors is reduced by eliminating the duplicate motion vectors, i.e. the motion vectors which have the same value.
- V 1 and V 2 are equal, and V o and V 3 are also equal, so only two of them should be kept as motion vector prediction candidates, for example V o and V 1 . In this case, only one bit is necessary to indicate the index of the motion vector predictor to the decoder.
- a further reduction of the set of motion vector predictors, based on the values of the predictors, is possible. Once the best motion vector predictor is selected and the motion vector residual is computed, it is possible to further eliminate from the prediction set the candidates which would have not been selected, knowing the motion vector residual and the cost optimization criterion of the encoder.
- a sufficient reduction of the set of predictors leads to a gain in the signaling overhead, since the indication of the selected motion vector predictor can be encoded using fewer bits.
- the set of candidates may even be reduced to 1, for example if all motion vector predictors are equal. In such a case it is not necessary to insert any information relative to the selected motion vector predictor in the bitstream since the decoder can infer the motion vector predictor value.
- AMVP the optimal amount of spatial and temporal predictors can be evaluated.
- a current implementation includes 2 spatial predictors and one temporal collocated predictor, for example.
- One known problem of video streams is their relative fragility to transmission errors.
- the main issue is related to error propagation. Indeed, due to prediction, one error in a bitstream portion may propagate to other received portions.
- the bitstream was constructed so that even with errors, the bitstream can still be read by the decoder allowing it to resynchronize the decoding after a reasonable time.
- AMVP One issue associated with AMVP, is the heavy risk of bitstream de-synchronization in case of losses.
- the problem occurs when one motion vector predictor is lost. In that case, the decoder cannot apply the suppression algorithm in the same context as the encoder. Indeed, if one motion vector is missing, it is impossible to determine if this missing motion vector predictor was equal to at least one of the other motion vector predictors or not.
- the decoder since the number of bits allocated to the index of motion vector predictor signaling depends on the amount of motion vector predictors remaining after the suppression algorithm, the decoder is no longer capable of determining how many bits have to be read for the index. This causes a de-synchronization of the decoder that may prevent the complete bitstream from being decoded until the next re-synchronization frame (IDR frame in H.264/AVC). Up to this frame, visually, the sequence is frozen.
- One approach sets out to address this problem by a determination of the number of predictors according to the data which comes from the current slice. Consequently, the number of predictors does not depend on the value of the motion vector. This provides to the parsing a robustness to transmission errors.
- a duplicate candidate in a predictor set which is a duplicate of any another candidate in the predictor set is removed and replaced by non-duplicate candidate. This offers an optimal use of the number of bits dedicated to the predictor index.
- Another advantage is that the parsing complexity is reduced compared to HEVC because the motion vector field does not need to be built for parsing application.
- FIG. 2 illustrates the flow chart of a predictor index coding method using such an approach.
- step 601 the number of predictors in a predictor set is determined and according to the data from the current slice rather than from the motion vector value which could depend on other slices.
- step 602 the number of predictors is provided.
- step 604 the predictor index 603 of the best predictor selected based on rate distortion (RD) criterion is converted to a code word 605 and this code word 605 is then entropy coded in step 606 .
- RD rate distortion
- FIG. 3 shows the flow chart of the AMVP scheme applying the above approach at the decoder side.
- step 703 the number of predictors 704 is determined and provided. The number of predictors 704 is then used in step 705 for the entropy decoding of the predictor index code word 706 retrieved from the bitstream 702 .
- step 707 the code word obtained in step 706 is converted to an index defining the motion vector predictor index 708 . This process is sufficient for index decoding or the predictor index parsing.
- a first list of predictors 710 is derived in step 709 according to the motion vectors field and the reference frame index obtained in step 701 .
- a suppression process is then applied 711 to produce a reduced motion vector predictors set 712 .
- step 713 a set of non duplicate predictors is generated, each candidate predictor is compared to all predictors in the list to determine if it is a duplicate of another predictor according to the number of predictors in the final predictor set provided in step 714 .
- Motion vector derivation has a significant impact on encoding and decoding complexity. Indeed, for the current HEVC motion vector derivation, each predictor position (above, left, temporal, below left, above right) should be derived. Such derivation processes involve memory accesses, scalings, etc. . . . Moreover, each predictor is compared to all other predictors in order to eliminate duplicate candidates Indeed such a derivation process may take up to 6 to 10% of the decoding process.
- the present invention has been devised to address one or more of the foregoing concerns.
- a method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded: obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion; generating a second set of motion information predictors consisting of said index number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set, and retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
- the number of motion information predictors derived is limited to the index number i the number of processing operation is reduced. Moreover since each motion information predictor is only compared with previously derived motion information predictor of the new set the number of processing operations is further reduced and decoding efficiency is improved.
- the step of generating a second set of motion information predictors comprises: obtaining a motion information predictor j for the second set of motion information predictors, comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j ⁇ 1, of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j ⁇ 1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a motion information predictor different to any of the previously derived predictors j ⁇ 1.
- the replacement motion information predictor may be derived according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
- the method may include a step of comparing the replacement motion information predictor with each of the previously obtained motion information predictors 0 to j ⁇ 1, of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtained motion information predictors 0 to j ⁇ 1, the method further comprising deriving another replacement motion information predictor.
- the method may include a step of determining the number of motion information predictors in the first set of motion information predictors and retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
- a method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion comprising for at least one image portion to encode obtaining a number x of motion information predictors taken from a first set of N motion information predictors, wherein the number x is based on a threshold parameter; and generating a second set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set, and selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and encoding an information i to provide an index i of the selected motion information predictor.
- the step of generating a second set of motion information predictors comprises: obtaining a motion information predictor j for the second set of motion information predictors, comparing the obtained motion information predictor to any previously obtained motion information predictor 0 to j ⁇ 1 of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j ⁇ 1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained information predictor is replaced with a motion information predictor different to any of the previously derived predictors j ⁇ 1.
- the threshold parameter may based on a maximum allowed number of motion information predictors, a rate distortion criterion and/or a threshold number of operations for obtaining the second set of motion information predictors.
- each of the following steps may be considering as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained motion information predictor 0 to j ⁇ 1 of the second set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor.
- the item of information may be encoded on a number of bits dependent upon the number N of motion information predictors.
- the motion information predictor may be selected based on a rate distortion criterion
- a further aspect of the invention provides a method of deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image, the method comprising for said image portion: obtaining a number i of motion information predictors of a second set of motion information predictors taken in a first set of motion information predictors for decoding the image portion; generating said second set of motion information predictors consisting of said number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set.
- an embodiment of the invention may provide a method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded: a step of deriving motion information of the image portion according to the further aspect, wherein the number i is an index of a selected motion information predictor in said first set of motion information predictors obtained during a encoding process applied to said image; and
- Another embodiment of the invention may provide a method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to decode a step of deriving motion information of the image portion according to the further aspect; and selecting, from among the set of motion information predictors a motion information predictor for encoding the image portion; and encoding an information item to provide an index i 2 of the selected motion information predictor.
- a third aspect of the invention may provide a decoding device for decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the decoding device comprising: index obtaining means for obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion; motion information set generation means for generating a second set of motion information predictors consisting of said index number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set, and retrieval means for retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
- the motion information set generation means may include: means for obtaining a motion information predictor j for the second set of motion information predictors, comparison means for comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j ⁇ 1, of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j ⁇ 1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a replacement motion information predictor different to any of the previously derived predictors 0 to j ⁇ 1.
- the motion information set generation means may be operable to derive the replacement motion information predictor according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
- the comparison means is operable to compare the replacement motion information predictor with each of the previously obtained motion information predictors 0 to j ⁇ 1, of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtained motion information predictors 0 to j ⁇ 1, the motion information set generation means is operable to derive another replacement motion information predictor.
- the device includes means for determining the number of motion information predictors in the first set of motion information predictors and means for retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
- an encoding device for encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the encoding device comprising: means for obtaining a number x, of motion information predictors taken from a first set of N motion information predictors wherein the number x is based on a threshold parameter; and motion information set generation means for generating a set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set, and selection means for selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and encoding means for encoding an information item to provide an index i of the selected motion information predictor.
- the motion information set generation means comprises: means for obtaining a motion information predictor j for the second set of motion information predictors, comparison means for comparing the obtained motion information predictor to any previously obtained motion information predictor 0 to j ⁇ 1 of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j ⁇ 1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise to replace the obtained information predictor with a motion information predictor different to any of the previously derived predictors 0 to j ⁇ 1.
- the threshold parameter may be based on a maximum allowed number of motion information predictors, a rate distortion criterion, and/or a threshold number of operations for obtaining the second set of motion information predictors.
- each of the following steps is considered respectively as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained motion information predictor 0 to j ⁇ 1 of the set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor.
- the encoding means is operable to encode said item of information on a number of bits dependent upon the number N of motion information predictors.
- the selection means is operable to select the motion information predictor based on a rate distortion criterion.
- the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit”, “module” or “system”.
- the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
- a tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like.
- a transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
- FIG. 1 is a schematic diagram of a set of motion vector predictors used in a motion vector prediction process
- FIG. 2 is a flow chart illustrating steps of an encoding process of the prior art
- FIG. 3 is a flow chart illustrating steps of an decoding process of the prior art
- FIG. 4 is a block diagram illustrating components of a processing device in which embodiments of the invention may be implemented
- FIG. 5 is a block diagram illustrating components of an encoder device according to embodiments of the invention.
- FIG. 6 is a block diagram illustrating components of a decoder device according to embodiments of the invention.
- FIG. 7 is a flow chart illustrating steps of a decoding process according to an embodiment of the invention.
- FIG. 8 is a flow chart illustrating steps of a general encoding process according to embodiments of the invention.
- FIG. 9 is a flow chart illustrating steps of an encoding process in which embodiments of the invention may be implemented.
- FIG. 10 is a flow chart illustrating an encoding process according to an embodiment of the invention.
- FIG. 11 is a flow chart illustrating an encoding process according to a further embodiment of the invention.
- FIG. 12 is a schematic diagram of a set of motion vector predictors used in a motion vector prediction process.
- FIG. 4 schematically illustrates a processing device 200 configured to implement at least one embodiment of the present invention.
- the processing device 200 may be a device such as a micro-computer, a workstation or a light portable device.
- the device 200 comprises a communication bus 213 to which there are preferably connected:
- the apparatus 200 may also include the following components:
- the apparatus 200 can be connected to various peripherals, such as for example a digital camera 200 or a microphone 208 , each being connected to an input/output card (not shown) so as to supply multimedia data to the apparatus 200 .
- peripherals such as for example a digital camera 200 or a microphone 208 , each being connected to an input/output card (not shown) so as to supply multimedia data to the apparatus 200 .
- the communication bus provides communication and interoperability between the various elements included in the apparatus 200 or connected to it.
- the representation of the bus is not limiting and in particular the central processing unit is operable to communicate instructions to any element of the apparatus 200 directly or by means of another element of the apparatus 200 .
- the disk 206 can be replaced by any information medium such as for example a compact disk (CD-ROM), rewritable or not, a ZIP disk or a memory card and, in general terms, by an information storage means that can be read by a microcomputer or by a microprocessor, integrated or not into the apparatus, possibly removable and adapted to store one or more programs whose execution enables the method of encoding a sequence of digital images and/or the method of decoding a bitstream according to the invention to be implemented.
- CD-ROM compact disk
- ZIP disk or a memory card
- an information storage means that can be read by a microcomputer or by a microprocessor, integrated or not into the apparatus, possibly removable and adapted to store one or more programs whose execution enables the method of encoding a sequence of digital images and/or the method of decoding a bitstream according to the invention to be implemented.
- the executable code may be stored either in read only memory 207 , on the hard disk 204 or on a removable digital medium such as for example a disk 206 as described previously.
- the executable code of the programs can be received by means of the communication network 203 , via the interface 202 , in order to be stored in one of the storage means of the apparatus 200 before being executed, such as the hard disk 204 .
- the central processing unit 211 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions that are stored in one of the aforementioned storage means.
- the program or programs that are stored in a non-volatile memory for example on the hard disk 204 or in the read only memory 207 , are transferred into the random access memory 212 , which then contains the executable code of the program or programs, as well as registers for storing the variables and parameters necessary for implementing the invention.
- the apparatus is a programmable apparatus which uses software to implement the invention.
- the present invention may be implemented in hardware (for example, in the form of an Application Specific Integrated Circuit or ASIC).
- FIG. 5 illustrates a block diagram of an encoder according to at least one embodiment of the invention.
- the encoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by the CPU 211 of device 200 , at least one corresponding step of a method implementing at least one embodiment of the invention.
- An original sequence of digital images 10 to in 301 is received as an input by the encoder 30 .
- Each digital image is represented by a set of samples, known as pixels.
- a bitstream 310 is output by the encoder 30 after implementation of the encoding process.
- the bitstream 310 comprises a plurality of encoding units or slices, each slice comprising a slice header for transmitting encoding values of encoding parameters used to encode the slice and a slice body, comprising encoded video data.
- the input digital images i 0 to in 301 are divided into blocks of pixels by module 302 .
- the blocks are image portions and may be of variable sizes (e.g. 4 ⁇ 4, 8 ⁇ 8, 16 ⁇ 16, 32 ⁇ 32).
- a coding mode is selected for each input block.
- Module 303 implements Intra prediction, in which the given block to be encoded is predicted by a predictor computed from pixels of the neighbourhood of said block to be encoded. An indication of the Intra predictor selected and the difference between the given block and its predictor is encoded to provide a residual if the Intra coding is selected.
- Temporal prediction is implemented by motion estimation module 304 and motion compensation module 305 .
- a reference image from among a set of reference images 316 is selected, and a portion of the reference image, also called reference area, which is the closest area to the given block to be encoded, is selected by the motion estimation module 304 .
- Motion compensation module 305 then predicts the block to be encoded using the selected area.
- the difference between the selected reference area and the given block, also called a residual block, is computed by the motion compensation module 305 .
- the selected reference area is indicated by a motion vector.
- a residual is computed by subtracting the prediction from the original predicted block.
- a prediction direction is encoded.
- at least one motion vector is encoded.
- An information relative to the motion vector and the residual block is encoded if the Inter prediction is selected.
- the motion vector is encoded by difference with respect to a motion vector predictor.
- a set of motion vector predictors also called motion information predictors, is obtained from the motion vectors field 318 by a motion vector prediction and coding module 317 .
- the set of motion vector predictors used to select a best motion vector predictor to encode a current motion vector is generated as explained in more detail hereafter with respect to FIGS. 10 and 11 .
- a number N of motion vector predictors is determined, and consequently the index of the selected motion vector predictor, which is an item of information representative of the selected motion vector predictor, can be encoded using a predetermined number of bits according to the number N of motion vector predictors. This predetermined number of bits can be also retrieved by the decoder even in case of losses, therefore it may be ensured that the decoder will be able to parse the bitstream even in case of errors or losses.
- the N motion vector predictors are selected according to various embodiments of the invention to be all different from one another so as to enhance the compression efficiency.
- Determining the number N of motion vector predictors and of the corresponding number of bits to encode the index of the motion vector predictor can be applied either for the entire sequence, or for a group of images of the sequence, or at the block level depending on an encoding parameters such as the block size or the encoding mode.
- a first number of motion vector predictors N 1 can be used for the blocks encoded using Inter prediction for which a residual block is encoded
- a second number of motion vector predictors N 2 can be used for the blocks encoded using the SKIP mode, for which only a motion vector is encoded, but no residual block.
- the respective numbers of motion vector predictors N 1 and N 2 can be for example signaled in the bitstream by inserting them in a header, such as the slice header, or in any appropriate metadata field.
- the encoder 30 further comprises a module 306 for selection of the coding mode 306 , which uses an encoding cost criterion, such as a rate-distortion criterion, to determine which is the best mode between the spatial prediction mode and the temporal prediction mode.
- an encoding cost criterion such as a rate-distortion criterion
- a transform 307 is applied to the residual block, the transformed data obtained is then quantized by module 308 and entropy encoded by module 309 .
- the encoded residual block of the current block to encode is inserted into the bitstream 310 , along with the information relative to the predictor used—the index of the selected motion vector predictor. For the blocks encoded in ‘SKIP’ mode, only a reference to the predictor is encoded in the bitstream, without any residual block.
- the encoder 30 further performs decoding of the encoded image in order to produce a reference image for the motion estimation of the subsequent images. This enables the encoder and the decoder receiving the bitstream to have the same reference frames.
- the module 311 performs inverse quantization of the quantized data, followed by an inverse transform 312 .
- the reverse intra prediction module 313 uses the prediction information to determine which predictor to use for a given block and the reverse motion compensation module 314 actually adds the residual obtained by module 312 to the reference area obtained from the set of reference images 316 .
- a deblocking filter 315 is applied to remove the blocking effects and enhance the visual quality of the decoded image. The same deblocking filter is applied at the decoder, so that, if there is no transmission loss, the encoder and the decoder apply the same processing.
- FIG. 6 illustrates a block diagram of a decoder 40 according to at least one embodiment of the invention.
- the decoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by the CPU 211 of device 200 , a corresponding step of a method implementing an embodiment of the invention.
- the decoder 40 receives a bitstream 401 comprising encoding units, each one being composed of a header containing information on encoding parameters and a body containing the encoded video data.
- the encoded video data is entropy encoded, and the motion vector predictors' indexes are encoded, for a given block, on a predetermined number of bits.
- the received encoded video data is entropy decoded by module 402 .
- the residual data are then dequantized by module 403 and then a reverse transform is applied by module 404 to obtain pixel values.
- the mode data are also entropy decoded and based on the mode, an INTRA type decoding or an INTER type decoding is performed.
- an INTRA predictor is determined by intra reverse prediction module 405 based on the intra prediction mode specified in the bitstream.
- the motion prediction information is extracted from the bitstream so as to find the reference area used by the encoder.
- the motion prediction information is composed of the reference frame index and the motion vector residual.
- the motion vector predictor is added to the motion vector residual in order to obtain the motion vector by motion vector decoding module 410 .
- Motion vector decoding module 410 applies motion vector decoding for each current block encoded by motion prediction.
- the method applied comprises determining the number N max of motion vector predictors used and retrieving the motion vector predictor index encoded on a number of bits dependent on N max .
- the motion vector decoding module 410 generates a set of motion vector predictors according to embodiments of the invention explained hereafter with reference to FIG. 7 .
- the actual value of the motion vector associated with the current block can be decoded and used to apply reverse motion compensation by module 406 .
- the reference area indicated by the decoded motion vector is extracted from a reference image 408 to apply the reverse motion compensation 406 .
- the motion vector field data 411 is updated with the decoded motion vector in order to be used for the inverse prediction of the next decoded motion vectors.
- a decoded block is obtained.
- a deblocking filter 407 is applied, similarly to the deblocking filter 315 applied at the encoder.
- a decoded video signal 409 is finally provided by the decoder 40 .
- FIG. 7 is a flow chart illustrating steps of a decoding process according to an embodiment of the invention.
- step 803 the number N of motion information predictors 804 in a set of motion information predictors is determined. The number of predictors in the set is determined based on data from the current slice. Based on this this number N, in step 805 the entropy decoding module extracts the code word 806 from the bitstream 802 . This code word 806 is then converted in step 807 to the selected motion vector predictor index 808 .
- the selected motion vector predictor index is denoted i in the description which follows. This index i of predictor may be equal for example to 0, 1, 2, 3 and 4. Indeed, for example, the maximum number of predictors in the current implementation of HEVC is 5.
- the method includes:
- Module 809 initializes the value of the motion information predictor counter variable “j”, indexing the predictors in the set, to 0.
- the selected predictor index i which has been retrieved in steps 805 to 807 described above is transmitted to a decision module 810 .
- the decision module 810 checks if predictor counter variable “j” is equal to “i+1”. When j is equal to 0, the module 810 returns the answer “no”. Next, the module 811 derives the candidate number “j”.
- a non-duplicate predictor is generated for the predictor j in step 815 .
- the module 815 performing the step may be combination of module 811 where a predictor j is generated and module 812 where the generated predictor j is compared with other previously derived predictors in the constructed list where at the end of the process the generated predictor is a non-duplicate predictor—i.e.
- the module 815 derives a predictor value according to the data of the motion vector field and the value of the current duplicate predictor (if needed), and that this module checks if this value is a duplicate candidate or not. To check if this generated predictor is a duplicate value, the predictor is compared to all predictors which have already been derived and added to the constructed list 814 . If the generated value is again a duplicate predictor, another predictor value is derived until a non-duplicate predictor is found. At the end of the process in step 815 , the non-duplicate predictor is added in step 813 to the constructed list 814 and the counter variable “j” is incremented in the module 816 .
- step 817 the selected predictor indexed “i” 818 is extracted from the constructed list of predictors.
- this predictor is the last predictor added in the constructed list 814 .
- the decoding method involves taking the last predictor of the constructed list 814 and rather than selecting from a complete set of predictors comprising, generally, a number of predictors greater than i the predictor at the position given by the motion vector predictor index “i”.
- a complete set of predictors comprising, generally, a number of predictors greater than i the predictor at the position given by the motion vector predictor index “i”.
- FIG. 8 is a flow chart illustrating steps of a general encoding process in which one or more embodiments of the invention may be implemented.
- step 601 the number of predictors in a predictor set is determined according to the data which comes from the current slice in order to provide the number of predictors 602 .
- RD rate distortion
- the encoder may derive all the predictors in the predictors set to give the best coding efficiency since all the coding possibilities may be estimated at the encoder side.
- FIG. 9 is a flow chart illustrating steps of an encoding process in which embodiments of the invention may be implemented.
- module 501 is the same as module 318 of FIG. 5
- module 512 is the same as module 309 of FIG. 5 .
- the step of derivation of motion vector predictors 504 generates the motion vector predictors set 505 by taking into account the current reference frame index 502 if needed (Inter mode). Then, a motion vector set generation process as will be described below can be applied in step 506 to the motion vectors set to produce a newly constructed list of x motion vector predictors or reduced motion vector predictors set 507 .
- step 508 the number of predictors x (represented by reference 509 ) in this reduced predictor set 507 is determined. Then, the best predictor is selected with the RD selection criterion and its related index i 503 is received by the module of predictor index signalling. If the number of predictors 509 is higher than one, the index i of the best predictor 403 is converted in the module 510 to a code word 511 . This code word, if it exists, is then entropy coded in 512 .
- the encoder complexity and encoding time may be minimised by restricting the amount of predictors derived.
- this restriction may depend on several parameters. For example, the block size, the encoding mode Inter/Merge/Merge Skip can be taken into account to reduce the encoding complexity.
- the number of predictors derived can evolve according to the encoding time already spent to encode the current frame.
- the encoder can limit the number of predictors derived for all Inter modes. For example, only one predictor may need to be derived to obtain a compliant bitstream instead of deriving the whole set of predictors as is done in HEVC derivation processes of the prior art.
- An early decision process may be implemented at encoder side.
- the main advantage in applying such a process is that a predictor is derived only if that predictor needs to be tested.
- the reduction in computational complexity results from the reduced number of predictors derived.
- FIG. 10 An example of an encoding method implementing an early decision algorithm according to an embodiment of the invention is illustrated in FIG. 10 .
- step 1002 the number of predictors in the current set is determined to provide a number of predictors 1003 . Then, the predictor counter variable “j” is initialized to the value 0 in step 1004 .
- step 1005 the module derives the predictor related to the index “j”.
- the decision module returns the value “no”
- the motion vector number “i” 1010 is the predictor derived in step 1005 .
- This predictor 1010 is then added to the constructed list of predictors.
- the decision module and the module generating non-duplicate predictors use this constructed list to determine if generated predictor is a duplicate of a predictor already in the constructed list of predictors.
- the motion vector predictor “j” 1010 is then used for a rate distortion computation in step 1011 .
- the module 1012 checks if the RD cost for motion vector predictor j is inferior to a threshold. If it is, the current block is encoded with the current tested block size, the current tested mode and the predictor number “j” in step 1016 . Otherwise the variable “j” is incremented in step 1013 .
- the module checks if the value of j has reached a maximum number of predictors. In the case where the maximum number of predictors has been reached, the encoder will proceed to test other coding possibilities; otherwise the algorithm will return to step 1005 to derive the current predictor number “j”.
- the algorithm involves predetermining a threshold in terms of number of elementary operations.
- This threshold can depend on an encoding and decoding complexity target. Moreover, this threshold can be dependent on the block size. Indeed, the derivation process of the motion vector predictors set has less impact in terms of number of operations per pixel for high block size than for low block size.
- the threshold could be defined, for example by compromising between coding efficiency and the complexity.
- FIG. 11 is a flow chart illustrating steps of an encoding algorithm according to this further embodiment of the invention.
- a comparison between 2 motion vectors is equivalent to one elementary operation and the derivation of one predictor value is equivalent to one elementary operation.
- the variable “operation counter” gives the number of operations at the current instant. The aim of this algorithm is to derive a list of predictors with a restricted number of operations.
- step 1102 the module determines the number of predictors 1103 in the set.
- the predictor counter variable “j” is initialized to a zero value in step 1104 .
- step 1106 the module derives the value of the predictor indexed “j”. In this example, this derivation represents one elementary operation, so the variable “operation counter” is incremented.
- the module in step 1108 returns the value “no”
- the variable “operation counter” is incremented by the number of predictors in the constructed list ( 1121 ) which is equal to the variable “j” since this corresponds to the number of comparison operations between predictors to be performed. If this “operation counter” indicates a count value which is superior to the defined operation count threshold 1117 and if predictor number “j” is superior to 0, then the derivation process is stopped and the encoder proceeds to the next encoding step. Otherwise the predictor number “j” is added in step 1119 to the constructed list of predictors 1121 . Then, the predictor count variable “j” is incremented. In step 1105 , the module checks if predictor number “j” is higher than the maximum number of predictors in the set 1103 . If that is the case, the derivation process needs fewer operations than the defined threshold.
- step 1108 If in step 1108 the module identifies that the current predictor “j” is a duplicate candidate, the variable “operation counter” is incremented by the value “j” in step 1110 . And in step 1111 the module obtains a motion vector value for the current predictor “j”. The variable “operation counter” is then incremented in step 1112 . Then, in step 1113 the module checks if the obtained motion vector predictor value is a duplicate candidate or not by comparing the obtained motion vector predictor j with previously obtained motion vector predictor in the constructed list 1121 .
- step 1113 If decision step 1113 returns true, that the motion vector predictor is a duplicate, the variable “operation counter” is incremented by “j” and in step 1115 , the module 1115 checks if the value of the operation counter is higher than the operation count threshold. If not, the algorithm will return to step 1111 . Otherwise, the derivation process ends, then the encoder will proceed to the next encoding step 1116 .
- FIG. 12 illustrates a set of motion vector predictors in HEVC coding.
- the two spatial motion vectors of the Inter mode are chosen from among those blocks which are above and left of the block to be encoded including the above corner blocks and left corner blocks.
- the left predictor is selected from among the blocks “Below Left” and “Left”. In this specific order, the following conditions are evaluated until a motion vector value is found.
- the “left” predictor is considered as unavailable. In that case, it means that the related blocks were Intra coded or these blocks do not exist. It means that in a first step the neighbouring block has been checked to determine if this predictor is in the list or not. (The availability of the predictor does not depend on the value of predictor).
- the “above” predictor is selected from among “Above Right”, “Above” and “Above left” in this specific order, with the same conditions as described above.
- This last step provides a non-duplicate value.
- the temporal motion predictor comes from the nearest reference frame in low delay configuration.
- 2 motion vectors are considered for the bottom right block of the collocated block.
- One is in the first list “L 0 ” and one in the second list “L 1 ”. If both motion vectors exist, the motion vector which has the shortest temporal distance is selected. If both predictors have the same temporal distance, the motion from “L 0 ” is selected.
- the collocated motion vector selected is then scaled, if needed, according to its temporal distance and to the temporal distance of the encoded motion vector. If no collocated predictor exists, the predictor is considered as unavailable.
- 2 collocated motion vectors can be considered. Both come from the future reference frame.
- the motion vector which crosses the current frame is selected. If both predictors cross the current frame, the motion vector which has the shortest temporal distance is selected. If both predictors have the same temporal distance, the motion from the first list “L 0 ” is then selected. The collocated motion vector selected is then scaled, if needed, according to its temporal distance and to the temporal distance of the encoded motion vector. For all motion temporal motion vector checked, the same criterion could be used.
- the temporal predictor is considered as available. If no bottom right collocated predictor exists or if this predictor is a duplicate predictor the following conditions are evaluated until a motion vector value different than the predictor left is found
- the set of predictors generated can contain 1, 2 or 3 predictors.
- the Merge mode is a particular form of Inter coding. Two modes are considered. The first one is the Merge Skip mode. In that case, only the index of a predictor (if needed) is transmitted in the bit stream. For the classical merge mode, the partitioning and their related texture residual (if needed) and their related motion vector predictors index are transmitted.
- the Merge modes For both Merge modes, no motion vector residual is transmitted.
- the Merge modes take into account the value of the reference frame index, the direction (Bi directional or uni-directional) and the list (with the uni-directional direction) of the motion vector predictors.
- the Merge mode uses a motion vector predictor and its reference frame index, unless the predictor is a temporal predictor where these parameters are derived from spatial predictors.
- Signalling of the index of the selected motion vector predictor depends on the result of the constructed motion vector predictor set described above with reference to FIG. 10 or 11 . Indeed, the amount of bits allocated to the signalling depends on the number of motion vectors remaining in the constructed set. For instance, if at the end of this algorithm, only one motion vector remains, no overhead is required to signal the motion vector predictor index, since the index can easily be retrieved by the decoder. Table 1 gives the codeword for each index coding according to the number of predictors after the suppression process.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
A method and device for deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image, the method comprising for said image portion: obtaining a number i of motion information predictors 808 of a second set of motion information predictors 814 taken from a first set of motion information predictors for decoding the image portion; generating said second set of motion information predictors 814 consisting of said number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set. A method and device for of decoding a bitstream, and a method and device for encoding a sequence of image including a method for deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image as described above.
Description
- The present invention concerns a method and device for encoding a sequence of digital images and a method and device for decoding a corresponding bitstream. The invention further relates to a method and device for deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image
- The invention belongs to the field of digital signal processing, and in particular to the field of video compression using motion compensation to reduce spatial and temporal redundancies in video streams.
- Many video compression formats, such as for example H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, use block-based discrete cosine transform (DCT) and motion compensation to remove spatial and temporal redundancies. They can be referred to as predictive video formats. Each frame or image of the video signal is divided into slices which are encoded and can be decoded independently. A slice is typically a rectangular portion of the frame, or more generally, a portion of a frame or an entire frame. Further, each slice is divided into macroblocks (MBs), and each macroblock is further divided into blocks, typically blocks of 8×8 pixels. The encoded frames are of two types: temporal predicted frames (either predicted from one reference frame called P-frames or predicted from two reference frames called B-frames) and non temporal predicted frames (called Intra frames or I-frames).
- Temporal prediction consists in finding in a reference frame, either a previous or a future frame of the video sequence, an image portion or reference area which is the closest to the block to encode. This step is known as motion estimation. Next, the block is predicted using the reference area (motion compensation)—the difference between the block to encode and the reference portion is encoded, along with an item of motion information relative to the motion vector which indicates the reference area to use for motion compensation.
- In order to further reduce the cost of encoding motion information, it has been proposed to encode a motion vector in terms of a difference between the motion vector and a motion vector predictor, typically computed from the motion vectors of the blocks surrounding the block to encode.
- In H.264, motion vectors are encoded with respect to a median predictor computed from the motion vectors situated in a causal neighbourhood of the block to encode, for example from the blocks situated above and to the left of the block to encode. Only the difference, also called residual motion vector, between the median predictor and the current block motion vector is encoded.
- Encoding using residual motion vectors saves some bitrate, but necessitates that the decoder performs the same computation of the motion vector predictor in order to decode the value of the motion vector of a block to decode.
- Recently, further improvements have been proposed, such as using a plurality of possible motion vector predictors. This method, often referred to as motion vector competition (MVCOMP), consists in determining from among several motion vector predictors or candidates which motion vector predictor minimizes the encoding cost, typically a rate-distortion cost, of the residual motion information. The residual motion information comprises the residual motion vector, i.e. the difference between the actual motion vector of the block to encode and the selected motion vector predictor, and an item of information indicating the selected motion vector predictor, such as for example an encoded value of the index of the selected motion vector predictor.
- In High Efficiency Video Coding (HEVC), it has been proposed to use a plurality of motion vector predictors as schematically illustrated in the example of
FIG. 1 : Three so-called spatial motion vector predictors V1, V2 and V3 taken from blocks situated in the neighbourhood of the block to encode; a median motion vector predictor computed based on the components of the three spatial motion vector predictors V1, V2 and V3 and a temporal motion vector predictor Vo which is the motion vector of the co-located block in a previously encoded image of the sequence (e.g. block of image N−1 located at the same spatial position as block ‘Being coded’ of image N). Currently in HEVC the 3 spatial motion vector predictors are taken from the block situated to the left of the block to encode (V3), the block situated above (V2) and from one of the blocks situated at the respective corners of the block to encode, according to a predetermined rule of availability. This motion vector predictor selection scheme is called Advanced Motion Vector Prediction (AMVP) which allows the selection of the best predictor from a given set. In the example ofFIG. 1 , the vector V1 of the block situated above left is selected. - Finally, a set of 5 motion vector predictor candidates mixing spatial predictors and temporal predictors is obtained. In order to reduce the overhead of signaling the motion vector predictor in the bitstream, the set of motion vector predictors is reduced by eliminating the duplicate motion vectors, i.e. the motion vectors which have the same value. For example, in the illustration of
FIG. 1 , V1 and V2 are equal, and Vo and V3 are also equal, so only two of them should be kept as motion vector prediction candidates, for example Vo and V1. In this case, only one bit is necessary to indicate the index of the motion vector predictor to the decoder. - A further reduction of the set of motion vector predictors, based on the values of the predictors, is possible. Once the best motion vector predictor is selected and the motion vector residual is computed, it is possible to further eliminate from the prediction set the candidates which would have not been selected, knowing the motion vector residual and the cost optimization criterion of the encoder. A sufficient reduction of the set of predictors leads to a gain in the signaling overhead, since the indication of the selected motion vector predictor can be encoded using fewer bits. The set of candidates may even be reduced to 1, for example if all motion vector predictors are equal. In such a case it is not necessary to insert any information relative to the selected motion vector predictor in the bitstream since the decoder can infer the motion vector predictor value.
- In AMVP the optimal amount of spatial and temporal predictors can be evaluated. A current implementation includes 2 spatial predictors and one temporal collocated predictor, for example.
- To summarize, the encoding of motion vectors by difference with a motion vector predictor, along with the reduction of the number of motion vector predictor candidates leads to a compression gain.
- One known problem of video streams is their relative fragility to transmission errors. The main issue is related to error propagation. Indeed, due to prediction, one error in a bitstream portion may propagate to other received portions. However, in previous standards such as H.264, the bitstream was constructed so that even with errors, the bitstream can still be read by the decoder allowing it to resynchronize the decoding after a reasonable time.
- One issue associated with AMVP, is the heavy risk of bitstream de-synchronization in case of losses. The problem occurs when one motion vector predictor is lost. In that case, the decoder cannot apply the suppression algorithm in the same context as the encoder. Indeed, if one motion vector is missing, it is impossible to determine if this missing motion vector predictor was equal to at least one of the other motion vector predictors or not. As a consequence, since the number of bits allocated to the index of motion vector predictor signaling depends on the amount of motion vector predictors remaining after the suppression algorithm, the decoder is no longer capable of determining how many bits have to be read for the index. This causes a de-synchronization of the decoder that may prevent the complete bitstream from being decoded until the next re-synchronization frame (IDR frame in H.264/AVC). Up to this frame, visually, the sequence is frozen.
- One approach sets out to address this problem by a determination of the number of predictors according to the data which comes from the current slice. Consequently, the number of predictors does not depend on the value of the motion vector. This provides to the parsing a robustness to transmission errors. To improve the coding efficiency, a duplicate candidate in a predictor set which is a duplicate of any another candidate in the predictor set is removed and replaced by non-duplicate candidate. This offers an optimal use of the number of bits dedicated to the predictor index. Another advantage is that the parsing complexity is reduced compared to HEVC because the motion vector field does not need to be built for parsing application.
-
FIG. 2 illustrates the flow chart of a predictor index coding method using such an approach. Instep 601 the number of predictors in a predictor set is determined and according to the data from the current slice rather than from the motion vector value which could depend on other slices. Instep 602 the number of predictors is provided. Instep 604 thepredictor index 603 of the best predictor selected based on rate distortion (RD) criterion is converted to acode word 605 and thiscode word 605 is then entropy coded instep 606. -
FIG. 3 shows the flow chart of the AMVP scheme applying the above approach at the decoder side. Instep 703 the number ofpredictors 704 is determined and provided. The number ofpredictors 704 is then used instep 705 for the entropy decoding of the predictorindex code word 706 retrieved from thebitstream 702. Instep 707 the code word obtained instep 706 is converted to an index defining the motionvector predictor index 708. This process is sufficient for index decoding or the predictor index parsing. For decoding of the motion information, a first list ofpredictors 710 is derived instep 709 according to the motion vectors field and the reference frame index obtained instep 701. A suppression process is then applied 711 to produce a reduced motion vector predictors set 712. Next, in step 713 a set of non duplicate predictors is generated, each candidate predictor is compared to all predictors in the list to determine if it is a duplicate of another predictor according to the number of predictors in the final predictor set provided in step 714. - Motion vector derivation has a significant impact on encoding and decoding complexity. Indeed, for the current HEVC motion vector derivation, each predictor position (above, left, temporal, below left, above right) should be derived. Such derivation processes involve memory accesses, scalings, etc. . . . Moreover, each predictor is compared to all other predictors in order to eliminate duplicate candidates Indeed such a derivation process may take up to 6 to 10% of the decoding process.
- Moreover, the computational complexity of the motion vector derivation process described above increases compared to the HEVC technique since duplicate predictors are replaced by non-duplicate predictors. This process implies the derivation of new motion vectors (memory accesses, scalings) or the modification of the current one, and comparison of derived predictors with all other predictors in the motion predictors set.
- The present invention has been devised to address one or more of the foregoing concerns.
- According to a first aspect of the invention there is provided a method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded: obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion; generating a second set of motion information predictors consisting of said index number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set, and retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
- Since the number of motion information predictors derived is limited to the index number i the number of processing operation is reduced. Moreover since each motion information predictor is only compared with previously derived motion information predictor of the new set the number of processing operations is further reduced and decoding efficiency is improved.
- In an embodiment of the invention the step of generating a second set of motion information predictors comprises: obtaining a motion information predictor j for the second set of motion information predictors, comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j−1, of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained
motion information predictors 0 to j−1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a motion information predictor different to any of the previously derived predictors j−1. - In an embodiment of the invention the replacement motion information predictor may be derived according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
- The method may include a step of comparing the replacement motion information predictor with each of the previously obtained
motion information predictors 0 to j−1, of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtainedmotion information predictors 0 to j−1, the method further comprising deriving another replacement motion information predictor. - The method may include a step of determining the number of motion information predictors in the first set of motion information predictors and retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
- According to a second aspect of the invention there is provided a method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to encode obtaining a number x of motion information predictors taken from a first set of N motion information predictors, wherein the number x is based on a threshold parameter; and generating a second set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set, and selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and encoding an information i to provide an index i of the selected motion information predictor.
- In an embodiment of the invention the step of generating a second set of motion information predictors comprises: obtaining a motion information predictor j for the second set of motion information predictors, comparing the obtained motion information predictor to any previously obtained
motion information predictor 0 to j−1 of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtainedmotion information predictors 0 to j−1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained information predictor is replaced with a motion information predictor different to any of the previously derived predictors j−1. - The threshold parameter may based on a maximum allowed number of motion information predictors, a rate distortion criterion and/or a threshold number of operations for obtaining the second set of motion information predictors.
- In a particular embodiment each of the following steps may be considering as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained
motion information predictor 0 to j−1 of the second set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor. - In an embodiment the item of information may be encoded on a number of bits dependent upon the number N of motion information predictors. The motion information predictor may be selected based on a rate distortion criterion
- A further aspect of the invention provides a method of deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image, the method comprising for said image portion: obtaining a number i of motion information predictors of a second set of motion information predictors taken in a first set of motion information predictors for decoding the image portion; generating said second set of motion information predictors consisting of said number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set.
- Thus an embodiment of the invention may provide a method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded: a step of deriving motion information of the image portion according to the further aspect, wherein the number i is an index of a selected motion information predictor in said first set of motion information predictors obtained during a encoding process applied to said image; and
- retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
- Another embodiment of the invention may provide a method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to decode a step of deriving motion information of the image portion according to the further aspect; and selecting, from among the set of motion information predictors a motion information predictor for encoding the image portion; and encoding an information item to provide an index i2 of the selected motion information predictor.
- A third aspect of the invention may provide a decoding device for decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the decoding device comprising: index obtaining means for obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion; motion information set generation means for generating a second set of motion information predictors consisting of said index number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set, and retrieval means for retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
- In an embodiment the motion information set generation means may include: means for obtaining a motion information predictor j for the second set of motion information predictors, comparison means for comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j−1, of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtained
motion information predictors 0 to j−1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a replacement motion information predictor different to any of the previously derivedpredictors 0 to j−1. - In an embodiment the motion information set generation means may be operable to derive the replacement motion information predictor according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
- In an embodiment the comparison means is operable to compare the replacement motion information predictor with each of the previously obtained
motion information predictors 0 to j−1, of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtainedmotion information predictors 0 to j−1, the motion information set generation means is operable to derive another replacement motion information predictor. - In an embodiment the device includes means for determining the number of motion information predictors in the first set of motion information predictors and means for retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
- According to a fourth aspect of the invention there is provided an encoding device for encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the encoding device comprising: means for obtaining a number x, of motion information predictors taken from a first set of N motion information predictors wherein the number x is based on a threshold parameter; and motion information set generation means for generating a set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set, and selection means for selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and encoding means for encoding an information item to provide an index i of the selected motion information predictor.
- In an embodiment the motion information set generation means comprises: means for obtaining a motion information predictor j for the second set of motion information predictors, comparison means for comparing the obtained motion information predictor to any previously obtained
motion information predictor 0 to j−1 of the second set of motion information predictors; wherein in the case where the obtained motion information predictor j is different to any of the previously obtainedmotion information predictors 0 to j−1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise to replace the obtained information predictor with a motion information predictor different to any of the previously derivedpredictors 0 to j−1. - The threshold parameter may be based on a maximum allowed number of motion information predictors, a rate distortion criterion, and/or a threshold number of operations for obtaining the second set of motion information predictors.
- In a particular embodiment each of the following steps is considered respectively as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained
motion information predictor 0 to j−1 of the set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor. - In an embodiment the encoding means is operable to encode said item of information on a number of bits dependent upon the number N of motion information predictors.
- In an embodiment the selection means is operable to select the motion information predictor based on a rate distortion criterion.
- At least parts of the methods according to the invention may be computer implemented. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit”, “module” or “system”.
- Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
- Since the present invention can be implemented in software, the present invention can be embodied as computer readable code for provision to a programmable apparatus on any suitable carrier medium. A tangible carrier medium may comprise a storage medium such as a floppy disk, a CD-ROM, a hard disk drive, a magnetic tape device or a solid state memory device and the like. A transient carrier medium may include a signal such as an electrical signal, an electronic signal, an optical signal, an acoustic signal, a magnetic signal or an electromagnetic signal, e.g. a microwave or RF signal.
- Embodiments of the invention will now be described, by way of example only, and with reference to the following drawings in which:
-
FIG. 1 is a schematic diagram of a set of motion vector predictors used in a motion vector prediction process; -
FIG. 2 is a flow chart illustrating steps of an encoding process of the prior art; -
FIG. 3 is a flow chart illustrating steps of an decoding process of the prior art; -
FIG. 4 is a block diagram illustrating components of a processing device in which embodiments of the invention may be implemented; -
FIG. 5 is a block diagram illustrating components of an encoder device according to embodiments of the invention; -
FIG. 6 is a block diagram illustrating components of a decoder device according to embodiments of the invention; -
FIG. 7 is a flow chart illustrating steps of a decoding process according to an embodiment of the invention; -
FIG. 8 is a flow chart illustrating steps of a general encoding process according to embodiments of the invention; -
FIG. 9 is a flow chart illustrating steps of an encoding process in which embodiments of the invention may be implemented; -
FIG. 10 is a flow chart illustrating an encoding process according to an embodiment of the invention; -
FIG. 11 is a flow chart illustrating an encoding process according to a further embodiment of the invention; and -
FIG. 12 is a schematic diagram of a set of motion vector predictors used in a motion vector prediction process. -
FIG. 4 schematically illustrates aprocessing device 200 configured to implement at least one embodiment of the present invention. Theprocessing device 200 may be a device such as a micro-computer, a workstation or a light portable device. Thedevice 200 comprises acommunication bus 213 to which there are preferably connected: -
- a
central processing unit 211, such as a microprocessor, denoted CPU; - a read only
memory 207, denoted ROM, for storing computer programs for implementing the invention; - a
random access memory 212, denoted RAM, for storing the executable code of the method of embodiments of the invention as well as the registers adapted to record variables and parameters necessary for implementing the method of encoding a sequence of digital images and/or the method of decoding a bitstream according to embodiments of the invention; and - a
communication interface 202 connected to acommunication network 203 over which digital data to be processed are transmitted.
- a
- Optionally, the
apparatus 200 may also include the following components: -
- a data storage means 204 such as a hard disk, for storing computer programs for implementing methods of one or more embodiments of the invention and data used or produced during the implementation of one or more embodiments of the invention;
- a
disk drive 205 for adisk 206, the disk drive being adapted to read data from thedisk 206 or to write data onto said disk; - a
screen 209 for displaying data and/or serving as a graphical interface with the user, by means of akeyboard 210 or any other pointing means.
- The
apparatus 200 can be connected to various peripherals, such as for example adigital camera 200 or amicrophone 208, each being connected to an input/output card (not shown) so as to supply multimedia data to theapparatus 200. - The communication bus provides communication and interoperability between the various elements included in the
apparatus 200 or connected to it. The representation of the bus is not limiting and in particular the central processing unit is operable to communicate instructions to any element of theapparatus 200 directly or by means of another element of theapparatus 200. - The
disk 206 can be replaced by any information medium such as for example a compact disk (CD-ROM), rewritable or not, a ZIP disk or a memory card and, in general terms, by an information storage means that can be read by a microcomputer or by a microprocessor, integrated or not into the apparatus, possibly removable and adapted to store one or more programs whose execution enables the method of encoding a sequence of digital images and/or the method of decoding a bitstream according to the invention to be implemented. - The executable code may be stored either in read only
memory 207, on thehard disk 204 or on a removable digital medium such as for example adisk 206 as described previously. According to a variant, the executable code of the programs can be received by means of thecommunication network 203, via theinterface 202, in order to be stored in one of the storage means of theapparatus 200 before being executed, such as thehard disk 204. - The
central processing unit 211 is adapted to control and direct the execution of the instructions or portions of software code of the program or programs according to the invention, instructions that are stored in one of the aforementioned storage means. On powering up, the program or programs that are stored in a non-volatile memory, for example on thehard disk 204 or in the read onlymemory 207, are transferred into therandom access memory 212, which then contains the executable code of the program or programs, as well as registers for storing the variables and parameters necessary for implementing the invention. - In this embodiment, the apparatus is a programmable apparatus which uses software to implement the invention. However, alternatively, the present invention may be implemented in hardware (for example, in the form of an Application Specific Integrated Circuit or ASIC).
-
FIG. 5 illustrates a block diagram of an encoder according to at least one embodiment of the invention. The encoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by theCPU 211 ofdevice 200, at least one corresponding step of a method implementing at least one embodiment of the invention. - An original sequence of digital images 10 to in 301 is received as an input by the
encoder 30. Each digital image is represented by a set of samples, known as pixels. Abitstream 310 is output by theencoder 30 after implementation of the encoding process. - The
bitstream 310 comprises a plurality of encoding units or slices, each slice comprising a slice header for transmitting encoding values of encoding parameters used to encode the slice and a slice body, comprising encoded video data. - The input digital images i0 to in 301 are divided into blocks of pixels by
module 302. The blocks are image portions and may be of variable sizes (e.g. 4×4, 8×8, 16×16, 32×32). A coding mode is selected for each input block. There are two families of coding modes: coding modes based on spatial prediction coding (Intra prediction), and coding modes based on temporal prediction (Inter coding, Bidir, SKIP). The possible coding modes are tested. -
Module 303 implements Intra prediction, in which the given block to be encoded is predicted by a predictor computed from pixels of the neighbourhood of said block to be encoded. An indication of the Intra predictor selected and the difference between the given block and its predictor is encoded to provide a residual if the Intra coding is selected. - Temporal prediction is implemented by
motion estimation module 304 andmotion compensation module 305. Firstly a reference image from among a set ofreference images 316 is selected, and a portion of the reference image, also called reference area, which is the closest area to the given block to be encoded, is selected by themotion estimation module 304.Motion compensation module 305 then predicts the block to be encoded using the selected area. The difference between the selected reference area and the given block, also called a residual block, is computed by themotion compensation module 305. The selected reference area is indicated by a motion vector. - Thus in both cases (spatial and temporal prediction), a residual is computed by subtracting the prediction from the original predicted block.
- In the INTRA prediction implemented by
module 303, a prediction direction is encoded. In the temporal prediction, at least one motion vector is encoded. - An information relative to the motion vector and the residual block is encoded if the Inter prediction is selected. To further reduce the bitrate, the motion vector is encoded by difference with respect to a motion vector predictor. A set of motion vector predictors, also called motion information predictors, is obtained from the motion vectors field 318 by a motion vector prediction and
coding module 317. - The set of motion vector predictors used to select a best motion vector predictor to encode a current motion vector is generated as explained in more detail hereafter with respect to
FIGS. 10 and 11 . For a given current block to be encoded, in some embodiments of the invention a number N of motion vector predictors is determined, and consequently the index of the selected motion vector predictor, which is an item of information representative of the selected motion vector predictor, can be encoded using a predetermined number of bits according to the number N of motion vector predictors. This predetermined number of bits can be also retrieved by the decoder even in case of losses, therefore it may be ensured that the decoder will be able to parse the bitstream even in case of errors or losses. The N motion vector predictors are selected according to various embodiments of the invention to be all different from one another so as to enhance the compression efficiency. - Determining the number N of motion vector predictors and of the corresponding number of bits to encode the index of the motion vector predictor can be applied either for the entire sequence, or for a group of images of the sequence, or at the block level depending on an encoding parameters such as the block size or the encoding mode. For example, a first number of motion vector predictors N1 can be used for the blocks encoded using Inter prediction for which a residual block is encoded, and a second number of motion vector predictors N2 can be used for the blocks encoded using the SKIP mode, for which only a motion vector is encoded, but no residual block. The respective numbers of motion vector predictors N1 and N2 can be for example signaled in the bitstream by inserting them in a header, such as the slice header, or in any appropriate metadata field.
- The
encoder 30 further comprises amodule 306 for selection of thecoding mode 306, which uses an encoding cost criterion, such as a rate-distortion criterion, to determine which is the best mode between the spatial prediction mode and the temporal prediction mode. In order to further reduce redundancies atransform 307 is applied to the residual block, the transformed data obtained is then quantized bymodule 308 and entropy encoded bymodule 309. Finally, the encoded residual block of the current block to encode is inserted into thebitstream 310, along with the information relative to the predictor used—the index of the selected motion vector predictor. For the blocks encoded in ‘SKIP’ mode, only a reference to the predictor is encoded in the bitstream, without any residual block. - The
encoder 30 further performs decoding of the encoded image in order to produce a reference image for the motion estimation of the subsequent images. This enables the encoder and the decoder receiving the bitstream to have the same reference frames. Themodule 311 performs inverse quantization of the quantized data, followed by aninverse transform 312. The reverseintra prediction module 313 uses the prediction information to determine which predictor to use for a given block and the reversemotion compensation module 314 actually adds the residual obtained bymodule 312 to the reference area obtained from the set ofreference images 316. Optionally, adeblocking filter 315 is applied to remove the blocking effects and enhance the visual quality of the decoded image. The same deblocking filter is applied at the decoder, so that, if there is no transmission loss, the encoder and the decoder apply the same processing. -
FIG. 6 illustrates a block diagram of adecoder 40 according to at least one embodiment of the invention. The decoder is represented by connected modules, each module being adapted to implement, for example in the form of programming instructions to be executed by theCPU 211 ofdevice 200, a corresponding step of a method implementing an embodiment of the invention. - The
decoder 40 receives abitstream 401 comprising encoding units, each one being composed of a header containing information on encoding parameters and a body containing the encoded video data. As explained with respect toFIG. 5 , the encoded video data is entropy encoded, and the motion vector predictors' indexes are encoded, for a given block, on a predetermined number of bits. The received encoded video data is entropy decoded bymodule 402. The residual data are then dequantized bymodule 403 and then a reverse transform is applied bymodule 404 to obtain pixel values. - The mode data are also entropy decoded and based on the mode, an INTRA type decoding or an INTER type decoding is performed.
- In the case of INTRA mode, an INTRA predictor is determined by intra
reverse prediction module 405 based on the intra prediction mode specified in the bitstream. - If the mode is INTER, the motion prediction information is extracted from the bitstream so as to find the reference area used by the encoder. The motion prediction information is composed of the reference frame index and the motion vector residual. The motion vector predictor is added to the motion vector residual in order to obtain the motion vector by motion
vector decoding module 410. - Motion
vector decoding module 410 applies motion vector decoding for each current block encoded by motion prediction. The method applied comprises determining the number Nmax of motion vector predictors used and retrieving the motion vector predictor index encoded on a number of bits dependent on Nmax. The motionvector decoding module 410 generates a set of motion vector predictors according to embodiments of the invention explained hereafter with reference toFIG. 7 . - Once the index of the motion vector predictor for the current block has been obtained the actual value of the motion vector associated with the current block can be decoded and used to apply reverse motion compensation by
module 406. The reference area indicated by the decoded motion vector is extracted from areference image 408 to apply thereverse motion compensation 406. The motionvector field data 411 is updated with the decoded motion vector in order to be used for the inverse prediction of the next decoded motion vectors. - Finally, a decoded block is obtained. A
deblocking filter 407 is applied, similarly to thedeblocking filter 315 applied at the encoder. A decodedvideo signal 409 is finally provided by thedecoder 40. -
FIG. 7 is a flow chart illustrating steps of a decoding process according to an embodiment of the invention. Instep 803 the number N ofmotion information predictors 804 in a set of motion information predictors is determined. The number of predictors in the set is determined based on data from the current slice. Based on this this number N, instep 805 the entropy decoding module extracts thecode word 806 from thebitstream 802. Thiscode word 806 is then converted instep 807 to the selected motionvector predictor index 808. The selected motion vector predictor index is denoted i in the description which follows. This index i of predictor may be equal for example to 0, 1, 2, 3 and 4. Indeed, for example, the maximum number of predictors in the current implementation of HEVC is 5. - In general terms, according to the embodiment of the invention, for each motion information predictor j from j=0 to j=index i of the set of N motion information predictors the method includes:
-
- deriving the motion information predictor j;
- determining if the derived motion information predictor j is different to any previously derived
motion information predictors 0 to j−1 of the set of motion information predictors; - and:
- if it is determined that the derived motion information predictor j is not different to any previously derived
motion information predictors 0 to j−1 the method further includes generating a motion information predictor for predictor j which is different to any previously derived predictor and adding the generated predictor to a new set of predictors,
- if it is determined that the derived motion information predictor j is not different to any previously derived
- otherwise, if it is determined that the predictor j is different to any previously derived predictor, the derived predictor j is added to the new set of predictors; and
- retrieving, for decoding of the image portion, the value of the motion information predictor j where j=i from the set of motion information predictor values.
- These method steps are implemented by
modules 808 to 817 ofFIG. 7 .Module 809 initializes the value of the motion information predictor counter variable “j”, indexing the predictors in the set, to 0. The selected predictor index i which has been retrieved insteps 805 to 807 described above is transmitted to adecision module 810. Thedecision module 810 checks if predictor counter variable “j” is equal to “i+1”. When j is equal to 0, themodule 810 returns the answer “no”. Next, themodule 811 derives the candidate number “j”. An example of a process for derivation of predictors will be described in more detail in a later section. For the first iteration of the method, when j=0, the predictor candidate from the set of predictors is the first predictor indexed 0. - Next, the
decision step 812 checks if the derived predictor for predictor number “j” is a duplicate candidate compared to the predictors already inserted in the constructed list ofpredictors 814. For the first predictor (j=0), themodule 812 will return the answer “no” because no predictor is yet present in the constructedlist 814. When thedecision module 812 returns the value “no”, the derived predictor “j” is inserted instep 813 in the constructedlist 814. The counter variable “j” is then incremented instep 816 before the method returns to thedecision step 810. - If the
decision step 812 returns the value “yes” that the derived predictor for predictor number “j” is a duplicate of any previously derived predictor j=0 to j−1 in the constructed list, then a non-duplicate predictor is generated for the predictor j instep 815. Themodule 815 performing the step may be combination ofmodule 811 where a predictor j is generated andmodule 812 where the generated predictor j is compared with other previously derived predictors in the constructed list where at the end of the process the generated predictor is a non-duplicate predictor—i.e. themodule 815 derives a predictor value according to the data of the motion vector field and the value of the current duplicate predictor (if needed), and that this module checks if this value is a duplicate candidate or not. To check if this generated predictor is a duplicate value, the predictor is compared to all predictors which have already been derived and added to the constructedlist 814. If the generated value is again a duplicate predictor, another predictor value is derived until a non-duplicate predictor is found. At the end of the process instep 815, the non-duplicate predictor is added instep 813 to the constructedlist 814 and the counter variable “j” is incremented in themodule 816. - When the
decision module 810 returns the value “yes” (j=i+1) then the module the process proceeds to step 817 in which the selected predictor indexed “i” 818 is extracted from the constructed list of predictors. In accordance with the embodiment of the present invention this predictor is the last predictor added in the constructedlist 814. - Accordingly in this embodiment of the invention, the decoding method involves taking the last predictor of the constructed
list 814 and rather than selecting from a complete set of predictors comprising, generally, a number of predictors greater than i the predictor at the position given by the motion vector predictor index “i”. With the invention, only “i” predictors need to be derived. Consequently, the decoding time dedicated to the motion vector derivation process can be significantly reduced compared to prior art techniques. -
FIG. 8 is a flow chart illustrating steps of a general encoding process in which one or more embodiments of the invention may be implemented. Instep 601 the number of predictors in a predictor set is determined according to the data which comes from the current slice in order to provide the number ofpredictors 602. The predictor index i 603 of the best predictor selected based on, for example rate distortion (RD) criterion is converted instep 604 to acode word 605 which is then entropy coded instep 606. - The encoder may derive all the predictors in the predictors set to give the best coding efficiency since all the coding possibilities may be estimated at the encoder side.
-
FIG. 9 is a flow chart illustrating steps of an encoding process in which embodiments of the invention may be implemented. In this flow chart,module 501 is the same asmodule 318 ofFIG. 5 , andmodule 512 is the same asmodule 309 ofFIG. 5 . - The step of derivation of
motion vector predictors 504 generates the motion vector predictors set 505 by taking into account the currentreference frame index 502 if needed (Inter mode). Then, a motion vector set generation process as will be described below can be applied instep 506 to the motion vectors set to produce a newly constructed list of x motion vector predictors or reduced motion vector predictors set 507. Instep 508 the number of predictors x (represented by reference 509) in this reduced predictor set 507 is determined. Then, the best predictor is selected with the RD selection criterion and its related index i 503 is received by the module of predictor index signalling. If the number ofpredictors 509 is higher than one, the index i of thebest predictor 403 is converted in themodule 510 to a code word 511. This code word, if it exists, is then entropy coded in 512. - According to embodiments of the present invention the encoder complexity and encoding time may be minimised by restricting the amount of predictors derived. In order to limit the impact on the coding efficiency, this restriction may depend on several parameters. For example, the block size, the encoding mode Inter/Merge/Merge Skip can be taken into account to reduce the encoding complexity. Moreover the number of predictors derived can evolve according to the encoding time already spent to encode the current frame.
- In accordance with some embodiments of the invention, the encoder can limit the number of predictors derived for all Inter modes. For example, only one predictor may need to be derived to obtain a compliant bitstream instead of deriving the whole set of predictors as is done in HEVC derivation processes of the prior art.
- An early decision process may be implemented at encoder side. The main advantage in applying such a process is that a predictor is derived only if that predictor needs to be tested. The reduction in computational complexity results from the reduced number of predictors derived.
- An example of an encoding method implementing an early decision algorithm according to an embodiment of the invention is illustrated in
FIG. 10 . - In
step 1002 the number of predictors in the current set is determined to provide a number ofpredictors 1003. Then, the predictor counter variable “j” is initialized to thevalue 0 instep 1004. Instep 1005 the module derives the predictor related to the index “j”. Instep 1006 the module checks if this derived predictor candidate j is a duplicate predictor or not. The derived predictor candidate is compared with each previous derived predictor candidate j=0 to j=j−1 in the constructed set. If the derived predictor candidate is a duplicate predictor of another previously added predictor j=0 to j=j−1, instep 1007 the module generates a non-duplicate candidate for the predictor number “j” 1010. If the decision module returns the value “no”, the motion vector number “i” 1010 is the predictor derived instep 1005. Thispredictor 1010 is then added to the constructed list of predictors. Instep 1006 the decision module and the module generating non-duplicate predictors use this constructed list to determine if generated predictor is a duplicate of a predictor already in the constructed list of predictors. - The motion vector predictor “j” 1010 is then used for a rate distortion computation in
step 1011. Themodule 1012 checks if the RD cost for motion vector predictor j is inferior to a threshold. If it is, the current block is encoded with the current tested block size, the current tested mode and the predictor number “j” instep 1016. Otherwise the variable “j” is incremented instep 1013. Instep 1014 the module checks if the value of j has reached a maximum number of predictors. In the case where the maximum number of predictors has been reached, the encoder will proceed to test other coding possibilities; otherwise the algorithm will return to step 1005 to derive the current predictor number “j”. - A further embodiment of an encoding method for limiting computational complexity will now be described with reference to
FIG. 11 . In this embodiment the algorithm involves predetermining a threshold in terms of number of elementary operations. This threshold can depend on an encoding and decoding complexity target. Moreover, this threshold can be dependent on the block size. Indeed, the derivation process of the motion vector predictors set has less impact in terms of number of operations per pixel for high block size than for low block size. The threshold could be defined, for example by compromising between coding efficiency and the complexity. -
FIG. 11 is a flow chart illustrating steps of an encoding algorithm according to this further embodiment of the invention. For the purposes of the description, we consider that a comparison between 2 motion vectors is equivalent to one elementary operation and the derivation of one predictor value is equivalent to one elementary operation. This may be modified according to the implementation of the algorithm for different embodiments of the invention. In the algorithm of the present further embodiment, the variable “operation counter” gives the number of operations at the current instant. The aim of this algorithm is to derive a list of predictors with a restricted number of operations. - In
step 1102 the module determines the number ofpredictors 1103 in the set. The predictor counter variable “j” is initialized to a zero value instep 1104. Next instep 1106, the module derives the value of the predictor indexed “j”. In this example, this derivation represents one elementary operation, so the variable “operation counter” is incremented. Next instep 1108 the module checks if the predictor indexed “j” is a duplicate candidate compared to the predictors already present in the constructedlist 1121. For the first predictor (j=0) no duplicate checking is performed since no predictors have been previously derived for the constructed list. For all cases, if the module instep 1108 returns the value “no”, the variable “operation counter” is incremented by the number of predictors in the constructed list (1121) which is equal to the variable “j” since this corresponds to the number of comparison operations between predictors to be performed. If this “operation counter” indicates a count value which is superior to the definedoperation count threshold 1117 and if predictor number “j” is superior to 0, then the derivation process is stopped and the encoder proceeds to the next encoding step. Otherwise the predictor number “j” is added instep 1119 to the constructed list ofpredictors 1121. Then, the predictor count variable “j” is incremented. Instep 1105, the module checks if predictor number “j” is higher than the maximum number of predictors in theset 1103. If that is the case, the derivation process needs fewer operations than the defined threshold. - If in
step 1108 the module identifies that the current predictor “j” is a duplicate candidate, the variable “operation counter” is incremented by the value “j” instep 1110. And instep 1111 the module obtains a motion vector value for the current predictor “j”. The variable “operation counter” is then incremented instep 1112. Then, instep 1113 the module checks if the obtained motion vector predictor value is a duplicate candidate or not by comparing the obtained motion vector predictor j with previously obtained motion vector predictor in the constructedlist 1121. Ifdecision step 1113 returns true, that the motion vector predictor is a duplicate, the variable “operation counter” is incremented by “j” and instep 1115, themodule 1115 checks if the value of the operation counter is higher than the operation count threshold. If not, the algorithm will return tostep 1111. Otherwise, the derivation process ends, then the encoder will proceed to thenext encoding step 1116. - In the algorithm illustrated in
FIG. 11 the generation of a non-duplicate inFIG. 11 is represented by thesteps - An example of a process of derivation of motion vector predictors for both the encoding and the decoding processes will now be described with reference to
FIG. 12 which illustrates a set of motion vector predictors in HEVC coding. In the predictor set represented inFIG. 12 , the two spatial motion vectors of the Inter mode are chosen from among those blocks which are above and left of the block to be encoded including the above corner blocks and left corner blocks. The left predictor is selected from among the blocks “Below Left” and “Left”. In this specific order, the following conditions are evaluated until a motion vector value is found. - 1. The motion vector associated with the same reference list and the same reference picture
- 2. The motion vector associated with another reference list and the same reference picture
- 3. The scaled motion vector associated with the same reference list and a different reference picture
- 4. The scaled motion vector associated with another reference list and a different reference picture
- If no value is found, the “left” predictor is considered as unavailable. In that case, it means that the related blocks were Intra coded or these blocks do not exist. It means that in a first step the neighbouring block has been checked to determine if this predictor is in the list or not. (The availability of the predictor does not depend on the value of predictor).
- The “above” predictor is selected from among “Above Right”, “Above” and “Above left” in this specific order, with the same conditions as described above.
- If no value is found the “above” predictor is considered as unavailable. If all these steps don't give a different value than the predictor left, the following conditions are evaluated until a motion vector value different than the predictor left is found
- 1. The motion vector associated with collocated block of the above predictor in a reference frame
- 2. The duplicate motion vector shifted by 2 to remove the sub pixel accuracy (the two components are approximated by the closest pixel values)
- 3. The duplicate motion vector shifted by 1 to remove the quarter pixel accuracy (the two components are approximated by the closest half pixel values)
- 4. Offset is added to the duplicate motion vector
- This last step provides a non-duplicate value.
- The temporal motion predictor comes from the nearest reference frame in low delay configuration. In case of B frames, 2 motion vectors are considered for the bottom right block of the collocated block. One is in the first list “L0” and one in the second list “L1”. If both motion vectors exist, the motion vector which has the shortest temporal distance is selected. If both predictors have the same temporal distance, the motion from “L0” is selected. The collocated motion vector selected is then scaled, if needed, according to its temporal distance and to the temporal distance of the encoded motion vector. If no collocated predictor exists, the predictor is considered as unavailable. For hierarchical B frames coding, 2 collocated motion vectors can be considered. Both come from the future reference frame. The motion vector which crosses the current frame is selected. If both predictors cross the current frame, the motion vector which has the shortest temporal distance is selected. If both predictors have the same temporal distance, the motion from the first list “L0” is then selected. The collocated motion vector selected is then scaled, if needed, according to its temporal distance and to the temporal distance of the encoded motion vector. For all motion temporal motion vector checked, the same criterion could be used.
- In the proposed scheme which solves the parsing issue the temporal predictor is considered as available. If no bottom right collocated predictor exists or if this predictor is a duplicate predictor the following conditions are evaluated until a motion vector value different than the predictor left is found
-
- 1. The centered collocated motion vector is checked.
- 2. The below left Motion vector of the collocated block
- 3. The above right Motion vector of the collocated block
- 4. The above left Motion vector of the collocated block
- 5. The zero value
- 6. The duplicate motion vector shifted by 2 to remove the sub pixel accuracy (the two components are approximated by the closest pixel values)
- 7. The duplicate motion vector shifted by 1 to remove the quarter pixel accuracy (the two components are approximated by the closest half pixel values)
- 8. Offset is added to the duplicate motion vector
- At the end of this process of derivation of motion vector predictors, the set of predictors generated can contain 1, 2 or 3 predictors.
- The Merge mode is a particular form of Inter coding. Two modes are considered. The first one is the Merge Skip mode. In that case, only the index of a predictor (if needed) is transmitted in the bit stream. For the classical merge mode, the partitioning and their related texture residual (if needed) and their related motion vector predictors index are transmitted.
- For both Merge modes, no motion vector residual is transmitted. To derive the motion vector predictors, the Merge modes take into account the value of the reference frame index, the direction (Bi directional or uni-directional) and the list (with the uni-directional direction) of the motion vector predictors. The Merge mode uses a motion vector predictor and its reference frame index, unless the predictor is a temporal predictor where these parameters are derived from spatial predictors.
- For the Merge modes, 5 predictors are considered: in this specific order: “Left”, “Above”, “Temporal”, “Above Right”, “Below Left”. The embodiment of the invention is applied as the Inter mode.
- Signalling of the index of the selected motion vector predictor depends on the result of the constructed motion vector predictor set described above with reference to
FIG. 10 or 11. Indeed, the amount of bits allocated to the signalling depends on the number of motion vectors remaining in the constructed set. For instance, if at the end of this algorithm, only one motion vector remains, no overhead is required to signal the motion vector predictor index, since the index can easily be retrieved by the decoder. Table 1 gives the codeword for each index coding according to the number of predictors after the suppression process. -
TABLE 1 Codeword when the amount of predictors in the set is N Index N = 1 N = 2 N = 3 N = 4 N = 5 0 (inferred) 0 0 0 0 1 1 10 10 10 2 11 110 110 3 111 1110 4 1111 - Although the present invention has been described hereinabove with reference to specific embodiments, the present invention is not limited to the specific embodiments, and modifications will be apparent to a skilled person in the art which lie within the scope of the present invention. Many further modifications and variations will suggest themselves to those versed in the art upon making reference to the foregoing illustrative embodiments, which are given by way of example only and which are not intended to limit the scope of the invention, that being determined solely by the appended claims. In particular the different features from different embodiments may be interchanged, where appropriate.
- In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article “a” or “an” does not exclude a plurality. The mere fact that different features are recited in mutually different dependent claims does not indicate that a combination of these features cannot be advantageously used.
Claims (32)
1. A method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded:
obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion;
generating a second set of motion information predictors consisting of said index number i of motion information predictors wherein there are no duplicates among the i motion information predictors of said second set; and
retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
2. A method according to claim 1 wherein the step of generating a second set of motion information predictors comprises:
obtaining a motion information predictor indexed j for the second set of motion information predictors,
comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j−1, of the second set of motion information predictors;
wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j−1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a replacement motion information predictor different to any of the previously derived predictors 0 to j−1.
3. A method according to claim 2 wherein the replacement motion information predictor is derived according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
4. A method according to claim 2 further comprising the step of comparing the replacement motion information predictor with each of the previously obtained motion information predictors 0 to j−1, of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtained motion information predictors 0 to j−1 the method further comprising deriving another replacement motion information predictor.
5. A method according to claim 1 comprising the step of determining the number of motion information predictors in the first set of motion information predictors and retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
6. A method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to encode
obtaining a number x, of motion information predictors taken from a first set of N motion information predictors wherein the number x is based on a threshold parameter; and
generating a second set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set; and
selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and
encoding an information item to provide an index i of the selected motion information predictor.
7. A method according to claim 6 wherein the step of generating a second set of motion information predictors comprises:
obtaining a motion information predictor j for the second set of motion information predictors,
comparing the obtained motion information predictor to any previously obtained motion information predictor 0 to j−1 of the second set of motion information predictors;
wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j−1 the obtained motion information predictor is added to the second set of motion information predictors, otherwise the obtained information predictor is replaced with a motion information predictor different to any of the previously derived predictors 0 to j−1.
8. A method according to claim 6 wherein the threshold number x is determined based on a maximum allowed number of motion information predictors.
9. A method according to claim 6 wherein the threshold number x is determined based on a rate distortion criterion.
10. A method according to claim 6 wherein the threshold number x is determined based on a threshold number of elementary operations for obtaining the second set of motion information predictors.
11. A method according to claim 10 wherein each of the following steps is counted as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained motion information predictor 0 to j−1 of the second set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor.
12. A method according to claim 6 wherein said item of information is encoded on a number of bits dependent upon the number N of motion information predictors.
13. A method according to claim 6 wherein the motion information predictor is selected based on a rate distortion criterion.
14. A decoding device for decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the decoding device comprising:
index obtaining means for obtaining an index i of a selected motion information predictor of a first set of motion information predictors for decoding the image portion;
motion information set generation means for generating a second set of motion information predictors consisting of said index number i of motion information predictors, wherein there are no duplicates among the i motion information predictors of said second set; and
retrieval means for retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
15. A device according to claim 14 wherein the motion information set generation means comprises:
means for obtaining a motion information predictor j for the second set of motion information predictors,
comparison means for comparing the obtained motion information predictor to any previously obtained motion information predictor, 0 to j−1, of the second set of motion information predictors;
wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j−1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise the obtained motion information predictor is replaced with a replacement motion information predictor different to any of the previously derived predictors 0 to j−1.
16. A device according to claim 15 wherein the motion information set generation means is operable to derive the replacement motion information predictor according to the value of the obtained motion information predictor j and data of a motion vector field storing encoded motion vectors of the current image and of previous images of the sequence.
17. A device according to claim 15 wherein the comparison means is operable to compare the replacement motion information predictor with each of the previously obtained motion information predictors 0 to j−1 of the second set of motion information predictors and in the case where the replacement motion information predictor is not different to each of the previously obtained motion information predictors 0 to j−1, the motion information set generation means is operable to derive another replacement motion information predictor.
18. A device according to claim 14 further comprising means for determining the number of motion information predictors in the first set of motion information predictors and means for retrieving an information item to provide the index i of the selected motion information predictor based on the number of motion information predictors.
19. An encoding device for encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the encoding device comprising:
means for obtaining a number x, of motion information predictors taken from a first set of N motion information predictors wherein the number x is based on a threshold parameter; and
motion information set generation means for generating a second set of motion information predictors consisting of said number x of motion information predictors, wherein there are no duplicates among the x motion information predictors of said second set; and
selection means for selecting, from among the second set of motion information predictors a motion information predictor for encoding the image portion; and
encoding means for encoding an information item to provide an index i of the selected motion information predictor.
20. A device according to claim 19 wherein motion information set generation means comprises:
means for obtaining a motion information predictor j for the second set of motion information predictors,
comparison means for comparing the obtained motion information predictor to any previously obtained motion information predictor 0 to j−1 of the second set of motion information predictors;
wherein in the case where the obtained motion information predictor j is different to any of the previously obtained motion information predictors 0 to j−1 the motion information set generation means is operable to add the obtained motion information predictor to the second set of motion information predictors, otherwise to replace the obtained information predictor with a motion information predictor different to any of the previously derived predictors 0 to j−1.
21. A device according to claim 19 wherein the threshold parameter is based on a maximum allowed number of motion information predictors.
22. A device according to claim 19 wherein the threshold parameter is based on a rate distortion criterion.
23. A device according to claim 19 wherein the threshold parameter is based on a threshold number of elementary operations for obtaining the set of motion information predictors.
24. A device according to claim 23 wherein each of the following steps is counted as at least one elementary operation: the step of obtaining a motion information predictor j, the step of comparing the obtained motion information predictor to a previously obtained motion information predictor 0 to j−1 of the set of motion information predictors, the step of replacing a motion information predictor j with a replacement motion information predictor, and the step of obtaining a replacement motion information predictor.
25. A device according to claim 19 wherein the encoding means is operable to encode said item of information on a number of bits dependent upon the number N of motion information predictors.
26. A device according to claim 19 wherein the selection means is operable to select the motion information predictor based on a rate distortion criterion.
27. A computer program product for a programmable apparatus, the computer program product comprising a sequence of instructions for implementing a method according to claim 1 when loaded into and executed by the programmable apparatus.
28. A computer-readable storage medium storing instructions of a computer program for implementing a method, according to claim 1 .
29-30. (canceled)
31. A method of deriving motion information of an image portion of an image predicted by motion prediction with respect to at least one reference image, the method comprising for said image portion:
obtaining, for a second set of motion information predictors, a number i of motion information predictors, said i motion information predictors taken from a first set of motion information predictors for decoding the image portion;
generating said second set of motion information predictors consisting of said number i of motion information predictors,
wherein there are no duplicates among the i motion information predictors of said second set.
32. A method of decoding a bitstream comprising an encoded sequence of images, at least one portion of an image having been encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to be decoded:
a step of deriving motion information of the image portion according to the method of claim 31 , wherein the number i is an index of a selected motion information predictor in said first set of motion information predictors obtained during a encoding process applied to said image; and
retrieving, for decoding of the image portion, the motion information predictor indexed by index i from the second set of motion information predictors.
33. A method of encoding a sequence of images into a bitstream, at least one portion of an image being encoded by motion compensation with respect to a reference image portion, the method comprising for at least one image portion to decode
a step of deriving motion information of the image portion according to the method of claim 31 , wherein the number i is based on a threshold parameter; and
selecting, from among the set of motion information predictors a motion information predictor for encoding the image portion; and
encoding an information item to provide an index i2 of the selected motion information predictor.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1109450.5 | 2011-06-06 | ||
GB1109450.5A GB2491589B (en) | 2011-06-06 | 2011-06-06 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
PCT/EP2012/060601 WO2012168242A2 (en) | 2011-06-06 | 2012-06-05 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2012/060601 A-371-Of-International WO2012168242A2 (en) | 2011-06-06 | 2012-06-05 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/422,865 Continuation US11095878B2 (en) | 2011-06-06 | 2019-05-24 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
Publications (1)
Publication Number | Publication Date |
---|---|
US20140169476A1 true US20140169476A1 (en) | 2014-06-19 |
Family
ID=44343465
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/123,941 Abandoned US20140169476A1 (en) | 2011-06-06 | 2012-06-05 | Method and Device for Encoding a Sequence of Images and Method and Device for Decoding a Sequence of Image |
US16/422,865 Active US11095878B2 (en) | 2011-06-06 | 2019-05-24 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/422,865 Active US11095878B2 (en) | 2011-06-06 | 2019-05-24 | Method and device for encoding a sequence of images and method and device for decoding a sequence of image |
Country Status (3)
Country | Link |
---|---|
US (2) | US20140169476A1 (en) |
GB (1) | GB2491589B (en) |
WO (1) | WO2012168242A2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160269738A1 (en) * | 2013-10-15 | 2016-09-15 | Orange | Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes |
US20180249176A1 (en) * | 2015-03-11 | 2018-08-30 | Lg Electronics Inc. | Method and apparatus for encoding and decoding video signal |
CN110266316A (en) * | 2019-05-08 | 2019-09-20 | 阿里巴巴集团控股有限公司 | A kind of data compression, decompressing method, device and equipment |
US11533470B2 (en) * | 2017-01-16 | 2022-12-20 | Industry Academy Cooperation Foundation Of Sejong University | Method and apparatus for encoding/decoding an image signal |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2524476B (en) * | 2014-03-14 | 2016-04-27 | Canon Kk | Method, device and computer program for optimizing transmission of motion vector related information when transmitting a video stream |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090304084A1 (en) * | 2008-03-19 | 2009-12-10 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
US20120082229A1 (en) * | 2010-10-01 | 2012-04-05 | Yeping Su | System for nested entropy encoding |
US20120128071A1 (en) * | 2010-11-24 | 2012-05-24 | Stmicroelectronics S.R.L. | Apparatus and method for performing error concealment of inter-coded video frames |
US20120163466A1 (en) * | 2010-12-28 | 2012-06-28 | Toshiyasu Sugio | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
Family Cites Families (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0620050A (en) | 1992-07-03 | 1994-01-28 | Matsushita Electric Ind Co Ltd | Dynamic image signal decoding device and estimated motion vector calculation method |
DE69901525T2 (en) | 1998-02-13 | 2003-01-09 | Koninklijke Philips Electronics N.V., Eindhoven | METHOD AND DEVICE FOR VIDEO CODING |
US7327791B1 (en) | 1999-02-22 | 2008-02-05 | Mitsubishi Denki Kabushiki Kaisha | Video decoding method performing selective error concealment and resynchronization |
US6552673B2 (en) | 2000-02-25 | 2003-04-22 | Texas Instruments Incorporated | Efficient table access for reversible variable length code decoding using a hash function |
US20050207663A1 (en) | 2001-07-31 | 2005-09-22 | Weimin Zeng | Searching method and system for best matching motion vector |
US7787746B2 (en) | 2001-10-23 | 2010-08-31 | Thomson Licensing | Fast motion trick mode using non-progressive dummy bidirectional predictive pictures |
KR100492127B1 (en) | 2002-02-23 | 2005-06-01 | 삼성전자주식회사 | Apparatus and method of adaptive motion estimation |
KR100474285B1 (en) | 2002-04-08 | 2005-03-08 | 엘지전자 주식회사 | Method for finding motion vector |
ES2355656T3 (en) | 2002-04-18 | 2011-03-29 | Kabushiki Kaisha Toshiba | PROCEDURE AND DEVICE FOR VIDEO DECODIFICATION. |
US7620106B2 (en) | 2003-09-07 | 2009-11-17 | Microsoft Corporation | Joint coding and decoding of a reference field selection and differential motion vector information |
US7577198B2 (en) | 2003-09-07 | 2009-08-18 | Microsoft Corporation | Number of reference fields for an interlaced forward-predicted field |
CN1225127C (en) | 2003-09-12 | 2005-10-26 | 中国科学院计算技术研究所 | A coding/decoding end bothway prediction method for video coding |
CN100353768C (en) | 2003-11-26 | 2007-12-05 | 联发科技股份有限公司 | Motion estimating method and device in video compression system |
US7676722B2 (en) | 2004-03-31 | 2010-03-09 | Sony Corporation | Multimedia content delivery using pre-stored multiple description coded video with restart |
CN101005620B (en) | 2004-09-03 | 2011-08-10 | 微软公司 | Innovations in coding and decoding macroblock and motion information for interlaced and progressive video |
CN1256686C (en) | 2004-09-15 | 2006-05-17 | 哈尔滨工业大学 | Motion estimating method and motion estimating circuit using the method |
US8073053B2 (en) | 2004-09-22 | 2011-12-06 | Panasonic Corporation | Image encoding device that encodes an arbitrary number of moving pictures |
EP1703736A1 (en) | 2005-03-14 | 2006-09-20 | BRITISH TELECOMMUNICATIONS public limited company | Global motion estimation |
KR100736041B1 (en) | 2005-06-30 | 2007-07-06 | 삼성전자주식회사 | Method and apparatus for concealing error of entire frame loss |
JP2007067731A (en) | 2005-08-30 | 2007-03-15 | Sanyo Electric Co Ltd | Coding method |
JP2007074592A (en) | 2005-09-09 | 2007-03-22 | Sony Corp | Image processing apparatus and method thereof, program, and recording medium |
US7620108B2 (en) | 2005-09-16 | 2009-11-17 | Sony Corporation | Integrated spatial-temporal prediction |
US8879857B2 (en) | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Redundant data encoding methods and device |
US8325822B2 (en) | 2006-01-20 | 2012-12-04 | Qualcomm Incorporated | Method and apparatus for determining an encoding method based on a distortion value related to error concealment |
JP5004150B2 (en) | 2006-02-24 | 2012-08-22 | Kddi株式会社 | Image encoding device |
JP5188033B2 (en) | 2006-04-24 | 2013-04-24 | 株式会社日立製作所 | Recording / reproducing apparatus, sending apparatus and transmission system. |
CN101064849A (en) | 2006-04-29 | 2007-10-31 | 鲁海宁 | Dynamic image coding method, apparatus and computer readable record medium |
US20080002770A1 (en) | 2006-06-30 | 2008-01-03 | Nokia Corporation | Methods, apparatus, and a computer program product for providing a fast inter mode decision for video encoding in resource constrained devices |
CN100576919C (en) | 2006-08-08 | 2009-12-30 | 佳能株式会社 | Apparatus for determining motion vectors and motion vector detecting method |
CN101155311B (en) | 2006-09-27 | 2012-09-05 | 中兴通讯股份有限公司 | Video code stream error detecting and processing method in video communication |
TW200836130A (en) | 2007-02-16 | 2008-09-01 | Thomson Licensing | Bitrate reduction method by requantization |
CN101267567A (en) | 2007-03-12 | 2008-09-17 | 华为技术有限公司 | Inside-frame prediction, decoding and coding method and device |
CN100542299C (en) | 2007-08-31 | 2009-09-16 | 广东威创视讯科技股份有限公司 | The concealing method of video image error |
EP2048886A1 (en) | 2007-10-11 | 2009-04-15 | Panasonic Corporation | Coding of adaptive interpolation filter coefficients |
CN101466036A (en) | 2007-12-21 | 2009-06-24 | 北京中电华大电子设计有限责任公司 | Parallel design method for movable vector forecasting flowing water based on AVS |
US20090268821A1 (en) | 2008-04-29 | 2009-10-29 | The Hong Kong University Of Science And Technology | Block parallel and fast motion estimation in video coding |
JP2010028221A (en) | 2008-07-15 | 2010-02-04 | Sony Corp | Motion vector detecting device, motion vector detecting method, image encoding device, and program |
US20100020877A1 (en) | 2008-07-23 | 2010-01-28 | The Hong Kong University Of Science And Technology | Multiple reference frame motion estimation in video coding |
CN101350927B (en) | 2008-07-29 | 2011-07-13 | 北京中星微电子有限公司 | Method and apparatus for forecasting and selecting optimum estimation mode in a frame |
JP5401071B2 (en) | 2008-10-09 | 2014-01-29 | 株式会社Nttドコモ | Moving picture encoding apparatus, moving picture decoding apparatus, moving picture encoding method, moving picture decoding method, moving picture encoding program, moving picture decoding program, moving picture processing system, and moving picture processing method |
US8295623B2 (en) * | 2008-10-14 | 2012-10-23 | France Telecom | Encoding and decoding with elimination of one or more predetermined predictors |
KR101590511B1 (en) | 2009-01-23 | 2016-02-02 | 에스케이텔레콤 주식회사 | / / Motion Vector Coding Method and Apparatus |
CN102883160B (en) | 2009-06-26 | 2016-06-29 | 华为技术有限公司 | Video image motion information getting method, device and equipment, template construction method |
KR20110008653A (en) * | 2009-07-20 | 2011-01-27 | 삼성전자주식회사 | Method and apparatus for predicting motion vector and method and apparatus of encoding/decoding a picture using the same |
US9060176B2 (en) | 2009-10-01 | 2015-06-16 | Ntt Docomo, Inc. | Motion vector prediction in video coding |
CN101860754B (en) | 2009-12-16 | 2013-11-13 | 香港应用科技研究院有限公司 | Method and device for coding and decoding motion vector |
CN101777963B (en) | 2009-12-29 | 2013-12-11 | 电子科技大学 | Method for coding and decoding at frame level on the basis of feedback mechanism |
WO2011095260A1 (en) * | 2010-02-05 | 2011-08-11 | Telefonaktiebolaget L M Ericsson (Publ) | Managing predicted motion vector candidates |
MX2013012209A (en) * | 2011-05-31 | 2013-11-01 | Panasonic Corp | Video encoding method, video encoding device, video decoding method, video decoding device, and video encoding/decoding device. |
-
2011
- 2011-06-06 GB GB1109450.5A patent/GB2491589B/en active Active
-
2012
- 2012-06-05 US US14/123,941 patent/US20140169476A1/en not_active Abandoned
- 2012-06-05 WO PCT/EP2012/060601 patent/WO2012168242A2/en active Application Filing
-
2019
- 2019-05-24 US US16/422,865 patent/US11095878B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090304084A1 (en) * | 2008-03-19 | 2009-12-10 | Nokia Corporation | Combined motion vector and reference index prediction for video coding |
US20120082229A1 (en) * | 2010-10-01 | 2012-04-05 | Yeping Su | System for nested entropy encoding |
US20120128071A1 (en) * | 2010-11-24 | 2012-05-24 | Stmicroelectronics S.R.L. | Apparatus and method for performing error concealment of inter-coded video frames |
US20120163466A1 (en) * | 2010-12-28 | 2012-06-28 | Toshiyasu Sugio | Image coding method, image decoding method, image coding apparatus, image decoding apparatus, and image coding and decoding apparatus |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160269738A1 (en) * | 2013-10-15 | 2016-09-15 | Orange | Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes |
US20180249176A1 (en) * | 2015-03-11 | 2018-08-30 | Lg Electronics Inc. | Method and apparatus for encoding and decoding video signal |
US11533470B2 (en) * | 2017-01-16 | 2022-12-20 | Industry Academy Cooperation Foundation Of Sejong University | Method and apparatus for encoding/decoding an image signal |
US11665337B2 (en) | 2017-01-16 | 2023-05-30 | Industry Academy Cooperation Foundation Of Sejong University | Method and apparatus for encoding/decoding an image signal |
CN110266316A (en) * | 2019-05-08 | 2019-09-20 | 阿里巴巴集团控股有限公司 | A kind of data compression, decompressing method, device and equipment |
Also Published As
Publication number | Publication date |
---|---|
GB2491589B (en) | 2015-12-16 |
WO2012168242A3 (en) | 2013-01-31 |
WO2012168242A2 (en) | 2012-12-13 |
GB201109450D0 (en) | 2011-07-20 |
US11095878B2 (en) | 2021-08-17 |
US20190281287A1 (en) | 2019-09-12 |
GB2491589A (en) | 2012-12-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11968390B2 (en) | Method and device for encoding a sequence of images and method and device for decoding a sequence of images | |
US10506236B2 (en) | Video encoding and decoding with improved error resilience | |
US11095878B2 (en) | Method and device for encoding a sequence of images and method and device for decoding a sequence of image | |
GB2492778A (en) | Motion compensated image coding by combining motion information predictors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: CANON KABUSHIKI KAISHA, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LAROCHE, GUILLAUME;ONNO, PATRICE;REEL/FRAME:032274/0467 Effective date: 20131121 |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |