Video encoding method, video decoding method, encoder, decoder, and storage medium

By utilizing the spatial correlation of macropixels in light field image encoding and decoding and adopting a symmetric motion vector encoding and decoding method, the problem of insufficient performance in light field image encoding and decoding is solved, and more efficient encoding and decoding effects are achieved.

WO2025217773A1PCT designated stage Publication Date: 2025-10-23GUANGDONG OPPO MOBILE TELECOMMUNICATIONS CORP LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/087830
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-04-15
Publication Date
2025-10-23

AI Technical Summary

Technical Problem

Existing video compression methods are ineffective when processing light field images or videos, failing to fully utilize the macro-pixel spatial correlation of light field images, resulting in insufficient encoding and decoding performance.

Method used

By considering the spatial correlation of macropixels in light field images and adopting a symmetric motion vector encoding and decoding method, the spatially correlated macropixel reference blocks in the reference image are used as candidate reference blocks to improve the prediction effect of the current block and the encoding and decoding performance of light field images.

Benefits of technology

The encoding and decoding performance of light field images is improved, and the encoding efficiency and decoding quality are enhanced.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024087830_23102025_PF_FP_ABST
    Figure CN2024087830_23102025_PF_FP_ABST
Patent Text Reader

Abstract

The present application discloses a video encoding method, a video decoding method, an encoder, a decoder, and a storage medium. Whether at an encoding end or a decoding end, the method comprises: determines a first motion vector difference, a first motion vector predicted value, and a second motion vector predicted value of a current block; on the basis of the first motion vector difference and the first motion vector predicted value of the current block, determining a first motion vector of the current block; on the basis of the second motion vector predicted value, determining a second motion vector of the current block; on the basis of the first motion vector and the second motion vector, determining a predicted value of the current block; and on the basis of the predicted value of the current block, determining a reconstructed value of the current block. Thus, macro pixel spatial correlation of a light field image is considered, an improved method for symmetric motion vector encoding and decoding of the light field image is provided, the prediction effect of the current block is improved, and the encoding and decoding performance is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Video coding method, encoder, decoder and storage medium TECHNICAL FIELD

[0001] Embodiments of the present application relate to the technical field of video coding, and in particular to a video coding method, an encoder, a decoder and a storage medium. BACKGROUND

[0002] The imaging model of a light field camera adds a set of microlens arrays in front of the imaging plane. This allows the light rays of the same point on the object plane to be captured by multiple microlenses at the same time, which is equivalent to taking the same point from multiple angles at the same time.

[0003] Due to the special imaging model of the light field camera, the visual effect of the light field image is very different from that of a conventional image. This also leads to poor results when using traditional image or video compression methods to process light field images or videos.

[0004] SUMMARY

[0005] Embodiments of the present application provide a video coding method, an encoder, a decoder and a storage medium, which take into account the macro-pixel spatial correlation of light field images, and provide an improved method for symmetric motion vector coding of light field images, to improve the prediction effect of the current block and improve the coding performance.

[0006] The technical solution of the embodiments of the present application can be implemented as follows:

[0007] In a first aspect, the embodiments of the present application provide a video decoding method applied to a decoder, which comprises:

[0008] decoding a code stream to determine a first motion vector difference of a current block;

[0009] determining a first motion vector prediction value and a second motion vector prediction value of the current block;

[0010] determining a first motion vector of the current block according to the first motion vector difference and the first motion vector prediction value of the current block;

[0011] decoding a code stream to determine a first indication parameter;

[0012] determining a second motion vector of the current block according to the first indication parameter and the second motion vector prediction value;

[0013] determining a prediction value of the current block according to the first motion vector and the second motion vector;

[0014] determining a reconstructed value of the current block according to the prediction value of the current block.

[0015] In a second aspect, the embodiments of the present application provide a video encoding method applied to an encoder, the method comprising:

[0016] determining a first motion vector difference, a first motion vector predictor and a second motion vector predictor of a current block;

[0017] determining a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block;

[0018] determining a plurality of candidate second motion vectors of the current block according to the second motion vector predictor;

[0019] determining a plurality of predictors of the current block according to the first motion vector and the plurality of candidate second motion vectors;

[0020] determining a first indication parameter according to an encoding decision of the plurality of predictors of the current block;

[0021] encoding the first motion vector difference and the first indication parameter, and writing obtained encoding bits into a bitstream.

[0022] In a third aspect, the embodiments of the present application provide an encoder, which comprises a first determining unit, a first predicting unit and an encoding unit;

[0023] The first determining unit is configured to determine a first motion vector difference, a first motion vector predictor and a second motion vector predictor of a current block, determine a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block, and determine a plurality of candidate second motion vectors of the current block according to the second motion vector predictor;

[0024] The first predicting unit is configured to determine a plurality of predictors of the current block according to the first motion vector and the plurality of candidate second motion vectors;

[0025] The first determining unit is further configured to determine a first indication parameter according to an encoding decision of the plurality of predictors of the current block;

[0026] The encoding unit is configured to encode the first motion vector difference and the first indication parameter, and write obtained encoding bits into a bitstream.

[0027] In a fourth aspect, the embodiments of the present application provide a decoder, which comprises a decoding unit, a second determining unit and a second predicting unit; wherein:

[0028] The decoding unit is configured to decode a bitstream and determine a first motion vector difference of a current block;

[0029] The second determining unit is configured to determine a first motion vector predictor and a second motion vector predictor of the current block, and determine a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block.

[0030] The decoding unit is further configured to decode a code stream to determine a first indication parameter.

[0031] The second determining unit is further configured to determine a second motion vector of the current block according to the first indication parameter and the second motion vector predictor.

[0032] The second predicting unit is configured to determine a prediction value of the current block according to the first motion vector and the second motion vector, and determine a reconstructed value of the current block according to the prediction value of the current block.

[0033] In a fifth aspect, an encoder is provided, which includes a first memory and a first processor; wherein,

[0034] The first memory is configured to store a computer program capable of running on the first processor.

[0035] The first processor is configured to execute the method in the first aspect when running the computer program.

[0036] In a sixth aspect, a decoder is provided, which includes a second memory and a second processor; wherein:

[0037] The second memory is configured to store a computer program capable of running on the second processor.

[0038] The second processor is configured to execute the method in the first aspect when running the computer program.

[0039] In a seventh aspect, a computer readable storage medium is provided, which stores a computer program, and the computer program is executed to implement the method in the first aspect or the method in the second aspect.

[0040] In an eighth aspect, a computer readable storage medium is provided, which stores a code stream generated by the encoding method.

[0041] The embodiment of the present application provides a video coding method, an encoder, a decoder and a storage medium. At the encoding end or the decoding end, a first motion vector difference, a first motion vector prediction value and a second motion vector prediction value of a current block are determined; a first motion vector of the current block is determined according to the first motion vector difference and the first motion vector prediction value of the current block; a second motion vector of the current block is determined according to the second motion vector prediction value; a prediction value of the current block is determined according to the first motion vector and the second motion vector; and a reconstructed value of the current block is determined according to the prediction value of the current block. In this way, the macro-pixel spatial correlation of the light field image is considered, an improved method for symmetric motion vector coding of the light field image is provided, the prediction effect of the current block is improved, and the coding performance is improved. Specifically, by taking the spatially related macro-pixel reference block in the reference image as a candidate reference block for motion compensation of the current block, the prediction effect of the current block is improved. BRIEF DESCRIPTION OF DRAWINGS

[0042] The drawings described herein are used to provide further understanding of the present application, form a part of the present application, the illustrative embodiments of the present application and the description thereof are used to explain the present application, and do not constitute improper limitation on the present application. In the drawings:

[0043] Fig. 1 is a schematic diagram of a light field image according to an embodiment of the present application;

[0044] Fig. 2 is a schematic diagram of an application scenario according to an embodiment of the present application;

[0045] Fig. 3 is a block diagram of an encoder according to an embodiment of the present application;

[0046] Fig. 4 is a block diagram of a decoder according to an embodiment of the present application;

[0047] Fig. 5 is a network architecture diagram of a coding system according to an embodiment of the present application;

[0048] Fig. 6 is a schematic diagram of symmetric motion vector difference coding;

[0049] Fig. 7 is a flowchart of a video coding method according to an embodiment of the present application;

[0050] Fig. 8 is a motion situation of an object from t1 time to t3 time via t2 time in a general video;

[0051] Fig. 9 is a motion situation of an object from t1 time to t3 time via t2 time in a light field video;

[0052] Fig. 10 is a schematic diagram of the position of a first matching block in the embodiment of the present application;

[0053] Fig. 11 is a schematic diagram of the position of a current block in the embodiment of the present application;

[0054] Fig. 12 is a schematic diagram of the position relationship between the adjacent macro-pixel parity block and the second matching block according to an embodiment of the present application;

[0055] Fig. 13 is a schematic diagram of the position relationship between the adjacent macro-pixel parity block and the second matching block according to an embodiment of the present application;

[0056] Fig. 14 is a schematic diagram of a video decoding method according to an embodiment of the present application;

[0057] Fig. 15 is a schematic diagram of the structure of an encoder according to an embodiment of the present application;

[0058] Fig. 16 is a schematic diagram of the specific hardware structure of an encoder according to an embodiment of the present application;

[0059] Fig. 17 is a schematic diagram of the structure of a decoder according to an embodiment of the present application;

[0060] Fig. 18 is a schematic diagram of the specific hardware structure of a decoder according to an embodiment of the present application;

[0061] Fig. 19 is a schematic diagram of the structure of a codec system according to an embodiment of the present application. DETAILED DESCRIPTION

[0062] The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only some of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative work fall within the scope of the present application.

[0063] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the present application belongs. The terminology used in the description herein is for describing the embodiments of the present application only and is not intended to be limiting of the present application.

[0064] In the following description, “some embodiments” are described, which describe a subset of all possible embodiments, but it can be understood that “some embodiments” can be the same subset or different subsets of all possible embodiments, and can be combined with each other without conflict.

[0065] It should also be noted that the terms “first\second\third” involved in the embodiments of the present application are only used to distinguish similar objects, and do not represent a specific order of the objects. It can be understood that “first\second\third” can be interchanged with a specific order or sequence as allowed, so that the embodiments of the present application described herein can be implemented in an order other than that illustrated or described herein.

[0066] In a video image, a coding block (CB) is generally represented by a first image component, a second image component and a third image component. The three image components are respectively a luminance component, a blue chroma component and a red chroma component. Specifically, the luminance component is usually represented by a symbol Y, the blue chroma component is usually represented by a symbol Cb or U, and the red chroma component is usually represented by a symbol Cr or V. Thus, the video image can be represented in YCbCr format or YUV format.

[0067] Before the embodiments of the present application are further described in detail, the terms and names involved in the embodiments of the present application are explained, which are applicable to the following explanations:

[0068] Moving Picture Experts Group (MPEG)

[0069] International Standardization Organization (ISO)

[0070] International Electrotechnical Commission (IEC)

[0071] Joint Video Experts Team (JVET)

[0072] Alliance for Open Media (AOM)

[0073] Lenslet video coding (LVC)

[0074] Next-generation video coding standard H.266 / Versatile Video Coding (VVC)

[0075] VVC Test Model (VTM)

[0076] Audio Video Standard (AVS)

[0077] High-Performance Model (HPM)

[0078] Transform coefficients

[0079] Quantization parameter

[0080] Motion vector (MV)

[0081] Context-based adaptive variable-length coding (CAVLC)

[0082] Context-based adaptive binary arithmetic coding (CABAC)

[0083] Scan region based coefficient coding (SRCC)

[0084] It can be understood that the digital video compression technology is mainly to compress the huge digital image video data, so as to facilitate transmission and storage, etc. With the surge of Internet video and people's increasingly high requirements for video clarity, although the existing digital video compression standard can save a lot of video data, but at present, better digital video compression technology is still needed to reduce the bandwidth and traffic pressure of digital video transmission.

[0085] Unlike the general camera imaging model, the light field camera adds a set of microlens array in front of the imaging plane. So that the light of the same point on the object plane can be captured by multiple microlenses at the same time, which is equivalent to taking the same point from multiple angles at the same time. Due to its special imaging model, the visual effect of light field image is very different from traditional pictures. This also leads to the compression method for general images or videos not working well when processing light field images or videos. The emergence of MPEG LVC group is to solve this problem, to study the compression method more suitable for light field video.

[0086] Light field image is composed of a series of regularly arranged macro-pixels, as shown in FIG. 1. According to the imaging principle of light field camera, there is a strong correlation between adjacent macro-pixels. Therefore, in the search process of motion estimation, compared with the conventional pixel unit-based method, the macro-pixel unit-based search method can more fully utilize the correlation of light field image, thereby bringing more efficient compression performance. However, searching only in macro-pixel units may lose some local optimal points. Considering that the matching block may move across the macro-pixels between different images, while there are also disparities such as disparity and size between adjacent macro-pixels, the best candidate of the matching block is not necessarily arranged strictly according to the macro-pixel spacing.

[0087] FIG. 2 is a schematic diagram of an application scenario of an embodiment of the present application. A multi-view camera or multi-view camera array captures light field video, outputs light field video data, and transmits the compressed data to the decoding end after compression by the encoder. The decoder decompresses to obtain light field video data and displays. Part of the codec can use existing video coding tools (for example, AVC, HEVC or VVC, etc.).

[0088] Referring to FIG. 3, a constituent block diagram of an encoder is shown. As shown in FIG. 3, the encoder (specifically, a "video encoder") 100 can include a transform and quantization unit 101, an intra estimation unit 102, an intra prediction unit 103, a motion compensation unit 104, a motion estimation unit 105, an inverse transform and inverse quantization unit 106, a filter control analysis unit 107, a filter unit 108, an encoding unit 109, and a decoded picture buffer unit 110, etc. The filter unit 108 can implement deblocking filtering and sample adaptive offset (SAO) filtering, and the encoding unit 109 can implement header information encoding and context-based adaptive binary arithmetic coding (CABAC).For the input raw video signal, a video coding block can be obtained by the division of a coding tree unit (CTU), and then the residual pixel information obtained after the intra or inter prediction is transformed by the transform and quantization unit 101 on the video coding block, including transforming the residual information from the pixel domain to the transform domain, and quantizing the obtained transform coefficients to further reduce the bit rate; the intra estimation unit 102 and the intra prediction unit 103 are used for intra prediction of the video coding block; in particular, the intra estimation unit 102 and the intra prediction unit 103 are used to determine the intra prediction mode to be used to encode the video coding block; the motion compensation unit 104 and the motion estimation unit 105 are used to perform inter prediction encoding of the received video coding block relative to one or more blocks in one or more reference images to provide temporal prediction information; the motion estimation performed by the motion estimation unit 105 is a process of generating a motion vector that can estimate the motion of the video coding block, and then the motion compensation unit 104 performs motion compensation based on the motion vector determined by the motion estimation unit 105; after determining the intra prediction mode, the intra prediction unit 103 is also used to provide the selected intra prediction data to the encoding unit 109, and the motion estimation unit 105 also sends the calculated determined motion vector data to the encoding unit 109; in addition, the inverse transform and inverse quantization unit 106 is used for reconstruction of the video coding block, reconstructing the residual block in the pixel domain, which removes the blocking artifact by the filter control analysis unit 107 and the filtering unit 108, and then adds the reconstructed residual block to a predictive block in one of the frames of the decoded image buffer unit 110 to generate a reconstructed video coding block; the encoding unit 109 is used to encode various encoding parameters and quantized transform coefficients, and in the CABAC-based encoding algorithm, the context content can be based on the adjacent coding block, which can be used to encode the information indicating the determined intra prediction mode, and output the bitstream of the video signal; and the decoded image buffer unit 110 is used to store the reconstructed video coding block for prediction reference. As the video image encoding proceeds, new reconstructed video coding blocks are continuously generated, which are stored in the decoded image buffer unit 110.

[0089] Referring to FIG. 4, a constituent block diagram of a decoder is shown according to an embodiment of the present application. As shown in FIG. 4, the decoder (specifically, a "video decoder") 200 includes a decoding unit 201, an inverse transform and inverse quantization unit 202, an intra prediction unit 203, a motion compensation unit 204, a filtering unit 205, and a decoded picture buffer unit 206, etc. The decoding unit 201 can implement header information decoding and CABAC decoding, and the filtering unit 205 can implement deblocking filtering and SAO filtering. After the input video signal is processed by the encoding process of FIG. 3, a bitstream of the video signal is output. The bitstream is input into the decoder 200, and first passes through the decoding unit 201 to obtain decoded transform coefficients. The transform coefficients are processed by the inverse transform and inverse quantization unit 202 to generate a residual block in the pixel domain. The intra prediction unit 203 can be used to generate prediction data of a current video decoding block based on a determined intra prediction mode and data from previously decoded blocks of the current picture or image. The motion compensation unit 204 determines prediction information for the video decoding block by parsing motion vectors and other associated syntax elements, and uses the prediction information to generate a predictive block of the video decoding block being decoded. A decoded video block is formed by summing the residual block from the inverse transform and inverse quantization unit 202 and the corresponding predictive block generated by the intra prediction unit 203 or the motion compensation unit 204. The decoded video signal passes through the filtering unit 205 to remove blocking artifacts and improve video quality. The decoded video block is then stored in the decoded picture buffer unit 206, which stores reference pictures for subsequent intra prediction or motion compensation, and also for output of the video signal, i.e., the original video signal is recovered.

[0090] Further, the present application also provides a network architecture of a codec system including an encoder and a decoder. FIG. 5 shows a network architecture of a codec system according to an embodiment of the present application. As shown in FIG. 5, the network architecture includes one or more electronic devices 13 to 1N and a communication network 01, wherein the electronic devices 13 to 1N can perform video interaction through the communication network 01. The electronic devices can be various types of devices having video codec functions in the implementation process, for example, the electronic devices can include a smart phone, a tablet computer, a personal computer, a personal digital assistant, a navigation device, a digital telephone, a video telephone, a television, a sensor device, a server, etc., which are not limited specifically herein. In addition, the decoder or the encoder according to the present application can be the above-mentioned electronic devices.

[0091] It should be noted that the method of the embodiments of the present application is mainly applied to the motion estimation unit 105 part of the inter prediction as shown in FIG. 3. The motion vector obtained by the motion estimation unit 105, the motion compensation unit 104 performs motion compensation based on the motion vector determined by the motion estimation unit 105, the encoding unit 109 encodes the motion vector data, and the motion compensation unit 204 of the decoder also uses the motion vector data to perform motion compensation.

[0092] It should also be noted that when applied to the motion estimation unit 105 part, the "current block" specifically refers to the encoding block to be inter predicted.

[0093] Symmetric motion vector (SMV) is a coding mode in inter bi-prediction. For the motion of most objects, it can be regarded as uniform motion within a certain time interval. Therefore, the motion information of the current block on the front and rear reference images in inter bi-prediction may have symmetry. Based on this, in bi-prediction, only the motion information in one direction needs to be transmitted, and the motion information in the other direction can be obtained through the symmetry relationship, thereby reducing the bit consumption of transmission.

[0094] This symmetric motion vector mode helps to reduce the amount of data transmission in the encoding process, thereby possibly improving the encoding efficiency. However, it also increases the complexity of the decoding end, because the decoder needs to perform additional calculations to generate the missing motion vector information.

[0095] FIG. 6 is a schematic diagram of symmetric motion vector difference coding. As shown in FIG. 6, on the two front and rear reference images located in the reference list L0 and L1, the corresponding motion vector differences MVD0 and MVD1 are generated, and they have a symmetric relationship: MVD0 = -MVD1 (1)

[0096] Further, according to the motion vector predictors MVP0 and MVP1 on the two front and rear reference images, the final motion vectors on the two reference images of the reference list L0 and L1 are obtained:

[0097] Therefore, only MVD1 (or MVD0) needs to be transmitted during encoding, and the motion vector difference in the other direction can be obtained through the symmetry relationship. Currently, this technology is used in video coding standard technologies such as H.266 / VVC.

[0098] Light field video is a video format captured by a light field camera. Due to the unique micro-lens array design inside the light field camera, the image frame of the light field video presents a series of closely arranged macro-pixels (or micro-images), as shown in FIG. 1. The circular pattern is a macro-pixel, and in this example, the macro-pixels are closely arranged in a hexagonal template. Light field video often has a huge amount of data, which brings difficulties to its transmission and compression. Therefore, video coding technology for light field video is particularly important. Generally, there is a strong correlation between macro-pixels in a light field image, and the movement of an object will be reflected in multiple adjacent macro-pixels. However, the traditional image or video compression method does not consider the arrangement characteristics of the light field image when processing the light field image or video, that is, the correlation between the macro-pixels is not fully considered, so there is still room for improvement for light field image or video compression.

[0099] Based on this, the embodiment of the present application provides a video coding method, which can be a light field image coding method, and more specifically, an improved method for symmetric motion vector coding of a light field image. When the current block uses the inter bi-prediction mode, the spatial correlation of the macro-pixels in the light field image is considered, and the spatially correlated macro-pixel reference blocks in the reference image are also used as candidate reference blocks, which improves the prediction effect of the current block and improves the coding performance.

[0100] To facilitate understanding of the technical solutions of the embodiments of the present application, the technical solutions of the present application are described in detail below through specific embodiments. The above related technologies can be combined with the technical solutions of the embodiments of the present application in any way, and all belong to the protection scope of the embodiments of the present application. The embodiments of the present application include at least part of the following contents.

[0101] In an embodiment of the present application, referring to FIG. 7, a flowchart of a video coding method provided by the embodiment of the present application is shown. As shown in FIG. 7, the method can include:

[0102] S101: decoding a code stream to determine a first motion vector difference of a current block;

[0103] S102: a first motion vector prediction value and a second motion vector prediction value;

[0104] The embodiment of the present application provides a video decoding method, which can be a light field image decoding method, and more specifically, an improved method for symmetric motion vector decoding of a light field image.

[0105] It should be noted that steps S101 and S102 are not used to limit the determination order of the first motion vector difference, the first motion vector prediction value and the second motion vector prediction value. In some embodiments, step S102 can also be performed before step S101.

[0106] In some embodiments, the method further includes decoding the bitstream, determining a prediction parameter of the current block; and determining a first motion vector predictor and a second motion vector predictor of the current block according to the prediction parameter.

[0107] The first motion vector difference and the first motion vector predictor are used to determine a first motion vector pointing to a first reference picture, which can be a forward reference picture of the current picture stored in the reference list L0. Specifically, the first reference picture can be a forward neighboring picture of the current picture, or a forward non-neighboring picture. The first reference picture can be a backward reference picture of the current picture stored in the reference list L1. The first reference picture can be a backward neighboring picture of the current picture, or a backward non-neighboring picture.

[0108] The second motion vector predictor is used to determine a second motion vector pointing to a second reference picture, which can be a forward reference picture of the current picture stored in the reference list L0, or a backward reference picture of the current picture stored in the reference list L1.

[0109] In some embodiments, the temporal direction of the first reference picture and the temporal direction of the second reference picture are opposite, and both are symmetric pictures or asymmetric pictures with the current picture as the center. In some embodiments, the temporal direction of the first reference picture and the temporal direction of the second reference picture can also be the same.

[0110] In some embodiments, the method further includes determining a first reference picture indication parameter; and determining the first reference picture according to the first reference picture indication parameter.

[0111] Specifically, the first reference picture is a picture after the picture where the current block is located in the image playback or output order, i.e., the first reference picture is a reference picture in the reference list L1. Alternatively, the first reference picture is a picture before the picture where the current block is located in the image playback or output order, i.e., the first reference picture is a reference picture in the reference list L0.

[0112] In some embodiments, the method further includes determining a second reference picture indication parameter; and determining the second reference picture according to the second reference picture indication parameter.

[0113] Specifically, the second reference picture is a picture after the picture where the current block is located in the image playback or output order, i.e., the second reference picture is a reference picture in the reference list L1. Alternatively, the second reference picture is a picture before the picture where the current block is located in the image playback or output order, i.e., the second reference picture is a reference picture in the reference list L1.

[0114] S103: determining a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block;

[0115] In some embodiments, the first motion vector is determined according to a sum of the first motion vector predictor MVP1 and the first motion vector difference MVD1. For example, MV1 = clip(MVP1 + MVD1).

[0116] In some embodiments, the first motion vector is set as a sum of the first motion vector predictor MVP1 and the first motion vector difference MVD1. For example, MV1 = MVP1 + MVD1.

[0117] The first motion vector MV1 is used to indicate a first matching block in the first reference image.

[0118] S104: decoding the bitstream to determine a first indication parameter;

[0119] S105: determining a second motion vector of the current block according to the first indication parameter and a second motion vector predictor;

[0120] In some embodiments, the first indication parameter is used to indicate a determination method of the second motion vector. For example, the method can include: determining a second reference motion vector difference of the current block according to the first motion vector difference; in a case where the first indication parameter takes a first preset value, decoding the bitstream to determine a macro-pixel reference block parameter of the current block; determining the second motion vector of the current block according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor; or, in a case where the first indication parameter takes a second preset value, determining the second motion vector of the current block according to the second reference motion vector difference and the second motion vector predictor. For example, the first preset value can be 1 and the second preset value can be 0; or, the first preset value can be 0 and the second preset value can be 1; or, the first preset value and the second preset value can also be other values.

[0121] It can be understood that the first indication parameter is used to indicate whether the current block uses a macro-pixel reference block for motion compensation, the first indication parameter takes the first preset value, it is determined that the current block uses the macro-pixel reference block for motion compensation, and the macro-pixel reference block parameter is further decoded to determine the second motion vector; if the first indication parameter takes the second preset value, it is determined that the current block does not use the macro-pixel reference block for motion compensation, and thus the macro-pixel reference block parameter does not need to be decoded, and the second motion vector of the current block is directly determined according to the second reference motion vector difference and the second motion vector predictor.

[0122] In some embodiments, determining the second reference motion vector difference of the current block according to the first motion vector difference comprises: deriving the second motion vector difference of the second reference picture according to the positional relationship between the first reference picture and the second reference picture and the first motion vector difference.

[0123] In some embodiments, the time domain direction of the first reference picture and the time domain direction of the second reference picture are opposite, and both are symmetric pictures centered on the current picture. The method can specifically comprise: determining a reverse vector of the first motion vector difference MVD1; and determining the second reference motion vector difference MVD 0a is set to be equal to the reverse vector. The calculation formula of the second reference motion vector difference is as follows: MVD 0a = -MVD1 (3)

[0124] In some embodiments, determining the second motion vector of the current block according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor comprises: determining a correction vector according to the macro-pixel reference block parameter; determining the second motion vector difference of the current block according to the correction vector and the second reference motion vector difference; and determining the second motion vector of the current block according to the second motion vector difference and the second motion vector predictor. The correction vector can be an offset of the second reference motion vector difference. For example, the calculation formula of the second motion vector is as follows: MV0 = (MVD 0a +offsetMV) + MVP0 (4) MV0 = (-MVD1+offsetMV) + MVP0 (5)

[0125] In some embodiments, determining the second motion vector of the current block according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor comprises: determining a correction vector according to the macro-pixel reference block parameter; determining the second motion vector difference of the current block according to the correction vector and the second reference motion vector difference; and determining the second motion vector of the current block according to the second motion vector difference and the second motion vector predictor. The correction vector can be an offset of the second motion vector. For example, the calculation formula of the second motion vector is as follows: MV0 = (MVD 0a +MVP0) + offsetMV (6) MV0 = (-MVD1+MVP0) + offsetMV (7)

[0126] In some embodiments, the time domain direction of the first reference image is opposite to the time domain direction of the second reference image, and the two are asymmetric images centered on the current image. The method may specifically include: scaling the first motion vector difference MVD1, and using the reverse vector of the scaled first motion vector difference as the second reference motion vector difference MVD of the current block in the second reference image. 0a The calculation formula of the second reference motion vector difference is as follows: MVD 0a =-MVD1*scale (8)

[0127] In some embodiments, the temporal direction of the first reference image and the temporal direction of the second reference image are the same, and the method may specifically include: performing a scaling process on the first motion vector difference MVD1, determining a second reference motion vector difference MVD of the current block in the second reference image 0a The calculation formula of the second reference motion vector difference is as follows: MVD 0a =MVD1*scale (9)

[0128] In some embodiments, determining a correction vector based on macropixel reference block parameters includes: determining a correction vector corresponding to the macropixel reference block based on the macropixel reference block parameters and a preset mapping relationship; wherein the mapping relationship includes a mapping relationship between one or more macropixel reference block parameters and the correction vector.

[0129] In some embodiments, the macropixel reference block parameters include a position index of a target macropixel reference block, used to determine the target macropixel reference block from one or more macropixel reference blocks corresponding to a co-located block of the current block in a reference image.

[0130] In some embodiments, decoding the bitstream to determine the macropixel reference block parameters of the current block includes: decoding the bitstream to determine the position index of the target macropixel reference block of the current block. In other words, in embodiments of the present application, the position index of the target macropixel reference block can be directly written into the bitstream.

[0131] In some embodiments, the one or more macropixel reference blocks include one or more reference blocks in one or more reference macropixels that are spatially correlated with the current macropixel where the co-located block is located. The one or more macropixels that are spatially correlated with the current macropixel include adjacent macropixels and / or non-adjacent macropixels of the current macropixel. In some embodiments, the one or more macropixel reference blocks include co-located blocks in one or more reference macropixels that are spatially correlated with the current macropixel where the co-located block is located, referred to as macropixel co-located blocks. In some embodiments, the one or more macropixel reference blocks also include adjacent blocks of the macropixel co-located block.

[0132] Generally, there is a strong correlation between each macro-pixel in the light field image, and the motion of an object will be reflected in multiple adjacent macro-pixels. FIG. 8 is a motion of an object in a general video from t1 to t2 to t3, which can be considered as a uniform linear motion in most cases; FIG. 9 is a motion of an object in a light field video, and due to the correlation between the macro-pixels, the object will generate corresponding correlation point positions in adjacent macro-pixel positions at each time. That is, assuming t2 is the current time, for the general video case of FIG. 8, the matching position at t1 can be obtained by symmetry relation under the condition that the motion position of the object at t3 is known (as shown in the positive direction box in FIG. 8); for the light field video case of FIG. 9, in addition to the matching position at t1 that can be obtained by symmetry relation under the condition that the motion position of the object at t3 is known, more matching positions can be obtained at adjacent macro-pixel positions by virtue of the correlation between the macro-pixels of the light field video (as shown in the positive direction box in FIG. 9). Therefore, when performing symmetric motion vector difference coding, the adjacent macro-pixels in the reference image can also be considered to improve the accuracy of the motion vector.

[0133] FIG. 10 is a schematic diagram of the position of a first matching block in the embodiment of the application, FIG. 11 is a schematic diagram of the position of a current block in the embodiment of the application, and FIG. 12 is a schematic diagram of the position of a second matching block and a macro-pixel homonymic block in the embodiment of the application. The first matching block and the second matching block are homonymic blocks of the current block in the first reference image and the second reference image respectively, and the relative positions of the second matching block and the macro-pixel homonymic block in the respective macro-pixel are the same. FIG. 12 shows the case of a hexagonal macro-pixel template arrangement, which is also applicable to other shapes of templates (for example, a square). The 6 adjacent macro-pixels closest to the current macro-pixel can also be selected, or non-adjacent macro-pixels can be selected.

[0134] For example, if the shape of the macro-pixel is hexagonal, the current macro-pixel includes 6 adjacent macro-pixels; or if the shape of the macro-pixel is square, the current macro-pixel includes 8 adjacent macro-pixels. The shape of the macro-pixel can also be other shapes, which will not be described here.

[0135] For example, the current macro-pixel includes 6 adjacent macro-pixels, and the mapping relationship includes: a first correction vector corresponding to a first macro-pixel reference block; a second correction vector corresponding to a second macro-pixel reference block; a third correction vector corresponding to a third macro-pixel reference block; a fourth correction vector corresponding to a fourth macro-pixel reference block; a fifth correction vector corresponding to a fifth macro-pixel reference block; and a sixth correction vector corresponding to a sixth macro-pixel reference block.

[0136] FIG. 13 is a schematic diagram of the positional relationship between the second matching block and the macro-pixel homonymic block in the embodiment of the application, as shown in FIG. 13, the coordinates of the macro-pixel homonymic block b are as follows:

[0137] wherein,

[0138] wherein, d is the diameter of the microlens, and (n·d+P) is the offset of block a to block b. The offset of block a to the target macro-pixel collocated block (one of block b to g) can be understood as a correction vector

[0139] In some embodiments, the method of decoding the bitstream, determining the macro-pixel reference block parameters of the current block comprises: decoding the bitstream, determining the position index difference value of the target macro-pixel reference block of the current block; determining the position index of the target macro-pixel reference block of the current block according to the position index difference value and the reference position index of the current block. That is, in some cases, the difference between the position index of the target macro-pixel reference block and the reference position index can also be directly written into the bitstream, so as to save the code rate of encoding the target macro-pixel reference block and improve the compression efficiency.

[0140] In some embodiments, the reference position index is a preset position index, or the reference position index is the position index when the last time the macro-pixel reference block is used for motion compensation.

[0141] For example, the index value of the target macro-pixel reference block is used to index one of the macro-pixel collocated blocks b to g in FIG. 12, wherein the index values of the blocks b to g can be 0 to 5, for example, the index value of the block b is 0, the index value of the block c is 1, the index value of the block d is 2, the index value of the block e is 3, the index value of the block f is 4, and the index value of the block g is 5.

[0142] The blocks b to g can also be represented by index difference values, for example, the blocks b to g are indexed by -2 to +3, for example, taking the block b as the reference position index, the index difference value of the block b is 0, the index difference value of the block c is +1, the index difference value of the block d is +2, the index difference value of the block e is +3, the index difference value of the block f is -2, and the index difference value of the block g is -1. Or the blocks b to g are indexed by -3 to +2, for example, taking the block b as the reference position index, the index difference value of the block b is 0, the index difference value of the block c is +1, the index difference value of the block d is +2, the index difference value of the block e is -3, the index difference value of the block f is -2, and the index difference value of the block g is -1.

[0143] The blocks b to g can also be represented by an index difference value. For example, the position index of the last used macro-pixel reference block is used as the reference position index, the last used macro-pixel reference block can be any one of the blocks b to g, the index difference value is 0, indicating that the current block uses the last used macro-pixel reference block, the index difference value is negative, indicating that the last used macro-pixel reference block is used to find the target macro-pixel reference block of the current block counterclockwise, and the index difference value is positive, indicating that the last used macro-pixel reference block is used to find the target macro-pixel reference block of the current block clockwise.

[0144] If the reference position index of the current block is the last used macro-pixel reference block for motion compensation, the method comprises: when the macro-pixel reference block is used for the first time for motion compensation, decoding the code stream to determine the position index of the target macro-pixel reference block; when the macro-pixel reference block is not used for the first time for motion compensation, the method further comprises: decoding the code stream to determine the index difference value of the target macro-pixel reference block.

[0145] In some embodiments, the second motion vector is determined according to the sum of the second motion vector predictor MVP0 and the second motion vector difference MVD0. For example, MV0 = clip(MVP0 + MVD0).

[0146] In some embodiments, the second motion vector is set to be equal to the sum of the second motion vector predictor MVP0 and the second motion vector difference MVD0. For example, MV0 = MVP0 + MVD0.

[0147] The second motion vector MV0 is used to indicate a second matching block in a second reference image.

[0148] S106: determining a prediction value of the current block according to the first motion vector and the second motion vector;

[0149] In some embodiments, the prediction value of the current block is determined according to the first motion vector and the second motion vector, comprising: determining a first matching block according to the first motion vector; determining a second matching block according to the second motion vector; and determining the prediction value of the current block according to the first matching block and the second matching block.

[0150] In some embodiments, the prediction value of the current block is determined by averaging the first matching block and the second matching block.

[0151] In some embodiments, the prediction value of the current block is determined by weighted fusion of the first matching block and the second matching block.

[0152] S107: determining a reconstructed value of the current block according to the prediction value of the current block.

[0153] In some embodiments, the method further comprises: decoding the bitstream, determining a residual value of the current block; and determining a reconstructed value of the current block according to the residual value and the prediction value of the current block.

[0154] In some embodiments, the method further comprises: performing filtering or other processing on the prediction value of the current block to obtain a final prediction value of the current block.

[0155] On the basis of the above-mentioned embodiments, the decoding method of the symmetric motion vector difference is further illustrated.

[0156] (1) At the decoding end, MVP1 and MVP0 of the reference lists L1 and L0 are predicted, and MVD1 is read from the bitstream, so as to obtain the motion vector MV1 = MVP1 + MVD1 on the reference list L1.

[0157] (2) A relevant flag (i.e., a first syntax element) is read from the bitstream, if the flag is marked as not using the macro-pixel reference block for motion compensation, the motion vector difference MVD0 = -MVD1 on the reference list L0 is obtained by using the symmetric relationship of the forward and backward reference images, and then the motion vector MV0 = MVP0 + MVD0 on L0 is obtained; if the flag is marked as using the macro-pixel reference block for motion compensation, the preliminary motion vector difference MVD0' on the reference list L0 is obtained by using the symmetric relationship , and then the motion vector MV0 = MVP0 + MVD0' on L0 is obtained. Then, the position index of the target macro-pixel co-located block (also called the best macro-pixel co-located block) is read from the bitstream, and the final reference block is obtained from the adjacent macro-pixel positions through the index. When reading the position index of the best macro-pixel co-located block, if the index is directly written in the bitstream, the index is directly read; if the difference value of the index from the last used index is written in the bitstream, the current index is calculated through the difference value and the last used index.

[0158] (3) The prediction block of the current block is determined according to the reference block of the reference image of the reference list L1 and the reference block or the macro-pixel co-located block of the reference image of the reference list L0.

[0159] By using the above technical solutions, when the current block uses the inter bi-prediction mode, the macro-pixel spatial correlation of the light field image is considered, the macro-pixel reference block related in the spatial domain in the reference image is also used as the candidate reference block, the prediction effect of the current block is improved, and the decoding performance is improved.

[0160] On the basis of the above-mentioned embodiments, the encoding method provided by the embodiments of the present application is further illustrated, as shown in FIG. 14, the method can comprise:

[0161] S201: determining a first motion vector difference, a first motion vector prediction value and a second motion vector prediction value of a current block;

[0162] The application embodiment provides a video coding method, which can be a coding method of a light field image, and can be a coding method of a symmetric motion vector of the light field image.

[0163] In some embodiments, in a case where the current block uses an inter bi-prediction mode, the coding bitstream is determined, a first motion vector difference, a first motion vector predictor and a second motion vector predictor of the current block are determined.

[0164] The first motion vector difference and the first motion vector predictor are used to determine a first motion vector pointing to a first reference image, which can be a forward reference image of the current image stored in a reference list L0, and specifically, the first reference image can be a forward neighboring image of the current image or a forward non-neighboring image. The first reference image can be a backward reference image of the current image stored in a reference list L1, and the first reference image can be a backward neighboring image of the current image or a backward non-neighboring image.

[0165] The second motion vector predictor is used to determine a second motion vector pointing to a second reference image, which can be a forward reference image of the current image stored in the reference list L0 or a backward reference image of the current image stored in the reference list L1.

[0166] In some embodiments, the time domain direction of the first reference image and the time domain direction of the second reference image are opposite, and both are symmetric images or asymmetric images with the current image as the center. In some embodiments, the time domain direction of the first reference image and the time domain direction of the second reference image can also be the same.

[0167] In some embodiments, the method further comprises determining a first reference image indication parameter, and determining the first reference image according to the first reference image indication parameter.

[0168] Specifically, in the image playing or output order, the first reference image is an image after the image where the current block is located, i.e., the first reference image is a reference image in the reference list L1. Alternatively, in the image playing or output order, the first reference image is an image before the image where the current block is located, i.e., the first reference image is a reference image in the reference list L0.

[0169] In some embodiments, the method further comprises determining a second reference image indication parameter, and determining the second reference image according to the second reference image indication parameter.

[0170] Specifically, in the image playback or output order, the second reference picture is a picture after the picture where the current block is located, i.e., the second reference picture is a reference picture in the reference list L1. Alternatively, in the image playback or output order, the second reference picture is a picture before the picture where the current block is located, i.e., the second reference picture is a reference picture in the reference list L1.

[0171] S202: determining the first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block;

[0172] In some embodiments, the first motion vector is determined according to a sum of the first motion vector predictor MVP1 and the first motion vector difference MVD1. For example, MV1 = clip(MVP1 + MVD1).

[0173] In some embodiments, the first motion vector is set to be equal to a sum of the first motion vector predictor MVP1 and the first motion vector difference MVD1. For example, MV1 = MVP1 + MVD1.

[0174] The first motion vector MV1 is used to indicate a first matching block in the first reference picture.

[0175] S203: determining a plurality of candidate second motion vectors of the current block according to the second motion vector predictor;

[0176] In some embodiments, the plurality of candidate second motion vectors of the current block are determined according to the second motion vector predictor, including: determining a second reference motion vector difference of the current block according to the first motion vector difference; determining a candidate second motion vector of the current block according to the candidate macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor; determining a candidate second motion vector of the current block according to the second reference motion vector difference and the second motion vector predictor;

[0177] Correspondingly, the first indication parameter is determined according to the coding decision of the plurality of predictors of the current block, including: when the decision result indicates that the current block uses the macro-pixel reference block for motion compensation, determining that the value of the first indication parameter is a first preset value; when the decision result indicates that the current block does not use the macro-pixel reference block for motion compensation, determining that the value of the first indication parameter is a second preset value. For example, the first preset value can be 1 and the second preset value can be 0; or, the first preset value can be 0 and the second preset value can be 1; or, the first preset value and the second preset value can also be other values.

[0178] It can be understood that the first indication parameter is used to indicate whether the current block uses the macro-pixel reference block for motion compensation, the first indication parameter takes a value equal to a first preset value, it is determined that the current block uses the macro-pixel reference block for motion compensation, and the macro-pixel reference block parameter is further encoded, used to determine the second motion vector; if the first indication parameter takes a value equal to a second preset value, it is determined that the current block uses the non-macro-pixel reference block for motion compensation, and the macro-pixel reference block parameter does not need to be encoded, and the second motion vector of the current block is directly determined according to the second reference motion vector difference and the second motion vector prediction value.

[0179] In some embodiments, the second reference motion vector difference of the current block is determined according to the first motion vector difference, including: the second motion vector difference of the second reference image is derived according to the positional relationship of the first reference image and the second reference image and the first motion vector difference.

[0180] In some embodiments, the time domain direction of the first reference image and the time domain direction of the second reference image are opposite, and the two are symmetric images centered on the current image, and the method can specifically include: determining the reverse vector of the first motion vector difference MVD1; the second reference motion vector difference MVD 0a is set to be equal to the reverse vector.

[0181] In some embodiments, the second motion vector of the current block is determined according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector prediction value, including: the correction vector is determined according to the macro-pixel reference block parameter; the second motion vector difference of the current block is determined according to the correction vector and the second reference motion vector difference; the second motion vector of the current block is determined according to the second motion vector difference and the second motion vector prediction value.

[0182] In some embodiments, the correction vector is determined according to the macro-pixel reference block parameter; the second motion vector of the current block is determined according to the second reference motion vector difference and the second motion vector prediction value, the second reference motion vector is determined; the second motion vector of the current block is determined according to the correction vector and the second reference motion vector.

[0183] In some embodiments, the time domain direction of the first reference image and the time domain direction of the second reference image are opposite, and the two are asymmetric images centered on the current image, and the method can specifically include: the first motion vector difference MVD1 is scaled scale, and the reverse vector of the scaled first motion vector difference is used as the second reference motion vector difference MVD 0a .

[0184] In some embodiments, the time domain direction of the first reference picture and the time domain direction of the second reference picture are the same, and the method can specifically include: performing scaling processing on the first motion vector difference MVD1 to determine a second reference motion vector difference MVD2 of the current block in the second reference picture 0a .

[0185] In some embodiments, the method further includes: determining the correction vector according to the macro-pixel reference block parameter, including: determining the correction vector corresponding to the macro-pixel reference block according to the macro-pixel reference block parameter and a preset mapping relationship; and wherein the mapping relationship includes the mapping relationship between one or more macro-pixel reference block parameters and the correction vector.

[0186] In some embodiments, the macro-pixel reference block parameter includes a position index of a target macro-pixel reference block, and is used to determine the target macro-pixel reference block from one or more macro-pixel reference blocks corresponding to the co-located block in the reference picture.

[0187] In some embodiments, the method further includes: when the decision result indicates that the current block uses the macro-pixel reference block for motion compensation, encoding the macro-pixel reference block parameter, and writing the obtained encoded bits into a bitstream. That is, in the embodiments of the present application, the position index of the target macro-pixel reference block can be directly written into the bitstream.

[0188] In some embodiments, the one or more macro-pixel reference blocks include one or more reference blocks in one or more reference macro-pixels having spatial correlation with a current macro-pixel in which the co-located block is located. The one or more macro-pixels having spatial correlation with the current macro-pixel include adjacent macro-pixels and / or non-adjacent macro-pixels of the current macro-pixel. In some embodiments, the one or more macro-pixel reference blocks include the co-located block in one or more reference macro-pixels having spatial correlation with the current macro-pixel in which the co-located block is located, referred to as a macro-pixel co-located block. In some embodiments, the one or more macro-pixel reference blocks further include adjacent blocks of the macro-pixel co-located block.

[0189] For example, if the macro-pixel shape is a hexagon, the current macro-pixel includes 6 adjacent macro-pixels; or, if the macro-pixel shape is a square, the current macro-pixel includes 8 adjacent macro-pixels. The macro-pixel shape can also be other shapes which are not described here.

[0190] For example, the current macro-pixel includes 6 adjacent macro-pixels, and the mapping relationship includes: a first correction vector corresponding to a first macro-pixel reference block; a second correction vector corresponding to a second macro-pixel reference block; a third correction vector corresponding to a third macro-pixel reference block; a fourth correction vector corresponding to a fourth macro-pixel reference block; a fifth correction vector corresponding to a fifth macro-pixel reference block; and a sixth correction vector corresponding to a sixth macro-pixel reference block.

[0191] In some embodiments, the encoding the macro-pixel reference block parameter and writing the obtained encoding bits into the bitstream comprises: determining a position index difference value of the target macro-pixel reference block according to the position index of the target macro-pixel reference block and the reference position index of the current block; and encoding the position index difference value of the target macro-pixel reference block and writing the obtained encoding bits into the bitstream. That is, in some cases, the difference value of the position index and the reference position index of the target macro-pixel reference block can be directly written into the bitstream, so as to save the code rate of encoding the target macro-pixel reference block and improve the compression efficiency.

[0192] In some embodiments, the reference position index is a preset position index, or the reference position index is the position index when the macro-pixel reference block is last used for motion compensation.

[0193] For example, the index value of the target macro-pixel reference block is used to index one of the macro-pixel co-located blocks b to g in FIG. 12, wherein the index values of the blocks b to g can be 0 to 5, for example, the index value of the block b is 0, the index value of the block c is 1, the index value of the block d is 2, the index value of the block e is 3, the index value of the block f is 4, and the index value of the block g is 5.

[0194] The blocks b to g can also be represented by index difference values, for example, the blocks b to g are indexed by -2 to +3, for example, taking the block b as the reference position index, the index difference value of the block b is 0, the index difference value of the block c is +1, the index difference value of the block d is +2, the index difference value of the block e is +3, the index difference value of the block f is -2, and the index difference value of the block g is -1. Or the blocks b to g are indexed by -3 to +2, for example, taking the block b as the reference position index, the index difference value of the block b is 0, the index difference value of the block c is +1, the index difference value of the block d is +2, the index difference value of the block e is -3, the index difference value of the block f is -2, and the index difference value of the block g is -1.

[0195] The blocks b to g can also be represented by index difference values, for example, taking the position index of the last used macro-pixel reference block as the reference position index, the last used macro-pixel reference block can be any one of the blocks b to g, the index difference value is 0, indicating that the current block uses the last used macro-pixel reference block, the index difference value is negative, indicating that the target macro-pixel reference block of the current block is found counterclockwise from the last used macro-pixel reference block, and the index difference value is positive, indicating that the target macro-pixel reference block of the current block is found clockwise from the last used macro-pixel reference block.

[0196] If the reference position index of the current block is the position index when the macro-pixel reference block is last used for motion compensation, the method comprises: encoding the position index of the target macro-pixel reference block when the macro-pixel reference block is first used for motion compensation; and encoding the index difference value of the target macro-pixel reference block when the macro-pixel reference block is not first used for motion compensation.

[0197] In some embodiments, the second motion vector is determined according to a sum of the second motion vector predictor MVP0 and the second motion vector difference MVD0. For example, MV0 = clip(MVP0 + MVD0).

[0198] In some embodiments, the second motion vector is set to be equal to a sum of the second motion vector predictor MVP0 and the second motion vector difference MVD0. For example, MV0 = MVP0 + MVD0.

[0199] The second motion vector MV0 is used to indicate a second matching block in the second reference image.

[0200] S204: determining a plurality of prediction values of the current block according to the first motion vector and the plurality of candidate second motion vectors;

[0201] In some embodiments, the determining of the prediction value of the current block according to the first motion vector and the second motion vector comprises: determining a first matching block according to the first motion vector; determining a second matching block according to the second motion vector; and determining the prediction value of the current block according to the first matching block and the second matching block.

[0202] In some embodiments, the prediction value of the current block is determined by averaging the first matching block and the second matching block.

[0203] In some embodiments, the prediction value of the current block is determined by weightedly fusing the first matching block and the second matching block.

[0204] S205: determining a first indication parameter according to the encoding decision of the plurality of prediction values of the current block;

[0205] S206: encoding the first motion vector difference and the first indication parameter, and writing the obtained encoding bits into a bitstream.

[0206] In some embodiments, the method further comprises: determining a residual value of the current block according to the best prediction value of the current block and the original value; and encoding the residual value of the current block, and writing the obtained encoding bits into a bitstream.

[0207] In some embodiments, the method further comprises: performing filtering or other processing on the prediction value of the current block to obtain a final prediction value of the current block.

[0208] On the basis of the above embodiments, the encoding method of the symmetric motion vector difference is further exemplified.

[0209] (1) At the encoding end, according to the current block position of the current image, a corresponding reference block (pointed by the motion vector MV1) is obtained at a certain reference image in the reference list L1, and there is a corresponding motion vector prediction value MVP1 and a motion vector difference MVD1; at another corresponding reference image in the reference list L0, the motion vector prediction value MVP0 is obtained, and then a preliminary motion vector difference As shown in Figure 1 of Section 1.1. The acquisition method of MV1, MVD1, MVP1 and MVP0 is not limited here;

[0210] (2) At another corresponding reference image in the reference list L0, according to The reference block position obtained, the position of the corresponding macro-pixel homonymic block is obtained, as shown in Figure 12 (the relative positions of the reference block and the macro-pixel homonymic block in the respective macro-pixel are the same). Figure 12 shows the arrangement of a hexagonal template, which is also applicable to other shaped templates (such as a square); Figure 12 selects the nearest 6 macro-pixels, and other number or other position macro-pixels can also be selected;

[0211] (3) According to rate-distortion optimization, from The corresponding reference block (block a of Figure 12) and its adjacent macro-pixel homonymic blocks (blocks b to g in Figure 12), the optimal block is selected as the final reference block in the corresponding another reference image in the reference list L0, and the motion vector difference corresponding to the optimal block is the final MVD0;

[0212] (4) At the same time, a related flag bit is set to mark whether the improved symmetric motion vector encoding method of the present scheme is used. If the final reference block is The corresponding reference block (block a of Figure 12), the flag bit will be marked as not using the improved method (that is, similar to the general symmetric motion vector encoding method), and MVD1 and related flag bits are written into the code stream; if the final reference block is a certain adjacent macro-pixel homonymic block (one of blocks b to g in Figure 12), it is taken as the best macro-pixel homonymic block, and the flag bit is marked as using the improved method, and MVD1, the position index of the best macro-pixel homonymic block and the related flag bit are written into the code stream. The position index of the best macro-pixel homonymic block can be directly written into the code stream, or the difference between the position index and the position index used in the last motion compensation (the position index used for the first time can be directly written into the code stream, or can be temporarily set to a fixed preset value) can be transmitted.

[0213] By using the technical scheme, when the current block uses the inter-frame bidirectional prediction mode, the macro-pixel space correlation of the light field image is considered, the macro-pixel reference blocks in the reference image which are spatially correlated are also taken as the candidate reference blocks, the prediction effect of the current block is improved, and the coding performance is improved.

[0214] In still another embodiment of the present application, based on the same inventive concept as the foregoing embodiments, referring to FIG. 15, a schematic diagram of a composition structure of an encoder provided in the embodiment of the present application is shown. As shown in FIG. 15, the encoder 150 can include a first determining unit 1501, a first predicting unit 1502 and an encoding unit 1503; wherein,

[0215] The first determining unit 1501 is configured to determine a first motion vector difference, a first motion vector prediction value and a second motion vector prediction value of a current block; determine a first motion vector of the current block according to the first motion vector difference and the first motion vector prediction value of the current block; and determine a plurality of candidate second motion vectors of the current block according to the second motion vector prediction value;

[0216] The first predicting unit 1502 is configured to determine a plurality of prediction values of the current block according to the first motion vector and the plurality of candidate second motion vectors.

[0217] The first determining unit 1501 is further configured to determine a first indication parameter according to an encoding decision of the plurality of prediction values of the current block.

[0218] The encoding unit 1503 is configured to encode the first motion vector difference and the first indication parameter, and write the obtained encoding bits into a bitstream.

[0219] It can be understood that the various functional units of the encoder are used to execute the encoding method of any one of the foregoing embodiments.

[0220] It can be understood that in the embodiments of the present application, the "unit" can be a part of circuit, a part of processor, a part of program or software, etc., and of course can be a module, and can also be non-modular. Moreover, the various components in the embodiments can be integrated in a processing unit, or each unit can exist physically independently, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware, or in the form of a software functional module.

[0221] If the integrated unit is implemented in the form of a software function module and is not sold or used as an independent product, it can be stored in a computer readable storage medium based on such understanding. The technical solutions of the embodiments essentially or the part that contributes to the prior art or the whole or part of the technical solutions can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes a plurality of instructions for causing a computer device (which can be a personal computer, a server, or a network device, etc.) or a processor to execute all or part of the steps of the embodiments. The aforementioned storage medium includes: a U disk, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk, and various media that can store program codes.

[0222] Therefore, the embodiments of the present application provide a computer readable storage medium applied to the encoder 150, and the computer readable storage medium stores a computer program. When the computer program is executed by the first processor, the method of any one of the foregoing embodiments is implemented.

[0223] Based on the composition of the encoder 150 and the computer readable storage medium, referring to FIG. 16, a specific hardware structure schematic diagram of the encoder 150 provided by the embodiments of the present application is shown. As shown in FIG. 16, the encoder 150 can include a first communication interface 1601, a first memory 1602 and a first processor 1603; each component is coupled together through a first bus system 1604. It can be understood that the first bus system 1604 is used to realize the connection communication between the components. The first bus system 1604 includes a data bus, a power supply bus, a control bus and a state signal bus. However, in order to clearly illustrate, all kinds of buses are marked as the first bus system 1604 in FIG. 16. Among them,

[0224] The first communication interface 1601 is used for receiving and sending signals in the process of transceiving information with other external network elements;

[0225] The first memory 1602 is used for storing a computer program capable of running on the first processor 1603;

[0226] The first processor 1603 is used for executing the following when running the computer program:

[0227] determining the first motion vector difference, the first motion vector predictor and the second motion vector predictor of the current block;

[0228] determining the first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block;

[0229] determine a plurality of candidate second motion vectors of the current block according to the second motion vector predictor;

[0230] determine a plurality of predictors of the current block according to the first motion vector and the plurality of candidate second motion vectors;

[0231] determine the first indication parameter according to the plurality of predictors of the current block;

[0232] encode the first motion vector difference and the first indication parameter, and write the obtained coded bits into a bitstream.

[0233] It can be understood that the first memory 1602 in the embodiments of the present application can be a volatile memory or a non-volatile memory, or can include both volatile and non-volatile memories. The non-volatile memory can be a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), or a flash memory. The volatile memory can be a Random Access Memory (RAM) used as an external cache. By way of example, and not limitation, many forms of RAM can be used, such as Static RAM (SRAM), Dynamic RAM (DRAM), Synchronous Dynamic RAM (SDRAM), Double Data Rate SDRAM (DDR SDRAM), Enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and Direct Rambus RAM (DRRAM). The first memory 1602 of the system and method described herein is intended to include, without being limited to, these and any other suitable types of memory.

[0234] The first processor 1603 can be an integrated circuit chip that has the processing capability of signals. In the implementation process, each step of the above method can be completed by the integrated logic circuit of hardware or the instruction in the form of software in the first processor 1603. The first processor 1603 described above can be a general processor, a digital signal processor (Digital Signal Processor, DSP), an application specific integrated circuit (Application Specific Integrated Circuit, ASIC), a field programmable gate array (Field Programmable Gate Array, FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component. Each method, step and logic block disclosed in the embodiment of the present application can be implemented or executed. The general processor can be a microprocessor or the processor can also be any conventional processor. The steps of the method disclosed in combination with the embodiment of the present application can be directly embodied as a hardware code processor for execution, or a combination of hardware and software modules in the code processor for execution. The software module can be located in a random access memory, a flash memory, a read only memory, a programmable read only memory or an electrically erasable programmable memory, a register or other mature storage medium in the art. The storage medium is located in the first storage 1602, and the first processor 1603 reads the information in the first storage 1602, and combines the hardware to complete the steps of the above method.

[0235] It can be understood that the embodiments described in the present application can be realized by hardware, software, firmware, middleware, microcode or a combination thereof. For hardware implementation, the processing unit can be realized in one or more application specific integrated circuits (Application Specific Integrated Circuits, ASIC), digital signal processors (Digital Signal Processing, DSP), digital signal processing devices (DSP Device, DSPD), programmable logic devices (Programmable Logic Device, PLD), field programmable gate arrays (Field-Programmable Gate Array, FPGA), general processors, controllers, microcontrollers, microprocessors, other electronic units for executing functions of the present application or a combination thereof. For software implementation, the technology of the present application can be realized by modules (such as processes, functions, etc.) for executing functions of the present application. The software code can be stored in the memory and executed by the processor. The memory can be implemented in the processor or outside the processor.

[0236] Optionally, as another embodiment, the first processor 1303 is further configured to execute the method of any one of the preceding embodiments when running the computer program.

[0237] The embodiment provides an encoder, in which the macro-pixel space correlation of the light field image is considered, an improved method for symmetric motion vector coding of the light field image is provided, the prediction effect of a current block is improved, and the coding performance is improved.

[0238] In still another embodiment of the present application, based on the same inventive concept as the preceding embodiments, referring to FIG. 17, a schematic structural diagram of a decoder provided by the embodiment of the present application is shown. As shown in FIG. 17, the decoder 200 can include a decoding unit 1701, a second determining unit 1702 and a second prediction unit 1703, wherein,

[0239] The decoding unit 1701 is configured to decode a code stream and determine a first motion vector difference of a current block.

[0240] The second determining unit 1702 is configured to determine a first motion vector prediction value and a second motion vector prediction value according to the first motion vector difference and the second motion vector difference.

[0241] The first motion vector of the current block is determined according to the first motion vector difference and the first motion vector prediction value.

[0242] The decoding unit 1701 is further configured to decode the code stream and determine a first indication parameter.

[0243] The second determining unit 1702 is further configured to determine a second motion vector of the current block according to the first indication parameter and the second motion vector prediction value.

[0244] The second prediction unit 1703 is configured to determine a prediction value of the current block according to the first motion vector and the second motion vector, and determine a reconstructed value of the current block according to the prediction value of the current block.

[0245] It can be understood that the functional units of the decoder also perform the decoding method of any one of the preceding embodiments.

[0246] It can be understood that, in the embodiment, the "unit" can be a part of circuit, a part of processor, a part of program or software, and of course can be a module, and can also be non-modular. Moreover, the components in the embodiment can be integrated in a processing unit, or each unit can exist physically, or two or more units can be integrated in one unit. The integrated unit can be realized in the form of hardware, or in the form of a software function module.

[0247] The integrated unit, if implemented in the form of a software function module and not sold or used as an independent product, can be stored in a computer readable storage medium. Based on such understanding, the embodiment provides a computer readable storage medium applied to the decoder 170, the computer readable storage medium stores a computer program, and the computer program is executed by the second processor to implement the decoding method of any one of the foregoing embodiments.

[0248] Based on the composition of the decoder 170 and the computer readable storage medium, referring to FIG. 18, a specific hardware structure schematic diagram of the decoder 170 provided by the embodiment of the application is shown. As shown in FIG. 18, the decoder 170 can include a second communication interface 1801, a second memory 1802 and a second processor 1803; and each component is coupled together through a second bus system 1804. It can be understood that the second bus system 1804 is used to realize the connection communication between the components. The second bus system 1804 includes a data bus, a power supply bus, a control bus and a state signal bus. However, for the purpose of clear illustration, all kinds of buses are marked as the second bus system 1804 in FIG. 18. Among them,

[0249] The second communication interface 1801 is used for receiving and sending signals in the information transceiving process between other external network elements;

[0250] The second memory 1802 is used for storing a computer program capable of running on the second processor 1803;

[0251] The second processor 1803 is used for, when running the computer program, executing:

[0252] Decoding the code stream to determine the first motion vector difference of the current block;

[0253] Determining the first motion vector prediction value and the second motion vector prediction value of the current block;

[0254] Determining the first motion vector of the current block according to the first motion vector difference and the first motion vector prediction value of the current block;

[0255] Decoding the code stream to determine the first indication parameter;

[0256] Determining the second motion vector of the current block according to the first indication parameter and the second motion vector prediction value;

[0257] Determining the prediction value of the current block according to the first motion vector and the second motion vector;

[0258] Determining the reconstruction value of the current block according to the prediction value of the current block.

[0259] The embodiment provides a decoder, in which the macro-pixel space correlation of the light field image is considered, an improved method for symmetric motion vector coding of the light field image is provided, the prediction effect of a current block is improved, and the decoding performance is improved.

[0260] In still another embodiment of the present application, referring to FIG. 19, a schematic structural diagram of a coding system provided by the embodiment of the present application is shown. As shown in FIG. 19, the coding system 190 can include an encoder 1901 and a decoder 1902.

[0261] In the embodiment of the present application, the encoder 1901 can be the encoder of any one of the foregoing embodiments, and the decoder 1902 can be the decoder of any one of the foregoing embodiments.

[0262] It should be noted that, in the present application, the terms "comprising", "containing" or any other variants thereof are intended to cover non-exclusive containing, so that the process, method, article or device including a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. Without more limitations, the element defined by the statement "including a" does not exclude the presence of another identical element in the process, method, article or device including the element.

[0263] The above embodiment numbers of the present application are only for description, and do not represent the advantages and disadvantages of the embodiments.

[0264] The methods disclosed in the several method embodiments of the present application can be combined arbitrarily to obtain new method embodiments, without conflict. The features disclosed in the several product embodiments of the present application can be combined arbitrarily to obtain new product embodiments, without conflict. The features disclosed in the several method or device embodiments of the present application can be combined arbitrarily to obtain new method or device embodiments, without conflict.

[0265] The above is only a specific implementation of the present application, but the protection scope of the present application is not limited thereto. Any person skilled in the art can easily think of changes or replacements within the technical range disclosed by the present application, which should be covered within the protection scope of the present application. Therefore, the protection scope of the present application should be subject to the protection scope of the claims. Industrial applicability

[0266] Provided in the embodiments of the present application are a video coding method, an encoder, a decoder and a storage medium. The method comprises: determining, at the encoding end or the decoding end, a first motion vector difference, a first motion vector predictor and a second motion vector predictor of a current block; determining a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block; determining a second motion vector of the current block according to the second motion vector predictor; determining a prediction value of the current block according to the first motion vector and the second motion vector; and determining a reconstructed value of the current block according to the prediction value of the current block. In this way, the macro-pixel spatial correlation of the light field image is considered, an improved method for symmetric motion vector coding of the light field image is provided, the prediction effect of the current block is improved, and the coding performance is improved. Specifically, by taking the macro-pixel reference block in the reference image which is spatially correlated as a candidate reference block for motion compensation of the current block, the prediction effect of the current block is improved.

Claims

1. A decoding method applied to a decoder, the method comprising: decoding a bitstream to determine a first motion vector difference of a current block; determining a first motion vector predictor and a second motion vector predictor of the current block; determining a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block; decoding a bitstream to determine a first indication parameter; determining a second motion vector of the current block according to the first indication parameter and the second motion vector predictor; determining a prediction value of the current block according to the first motion vector and the second motion vector; determining a reconstructed value of the current block according to the prediction value of the current block.

2. The method of claim 1, wherein, The determining the second motion vector of the current block according to the first indication parameter and the second motion vector predictor comprises: determining a second reference motion vector difference of the current block according to the first motion vector difference; in a case where the first indication parameter takes a first preset value, decoding a bitstream to determine a macro-pixel reference block parameter of the current block; determining the second motion vector of the current block according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor; or in a case where the first indication parameter takes a second preset value, determining the second motion vector of the current block according to the second reference motion vector difference and the second motion vector predictor.

3. The method of claim 2, wherein, The determining the second reference motion vector difference of the current block according to the first motion vector difference comprises: determining an inverse vector of the first motion vector difference; the second reference motion vector difference is set to be equal to the inverse vector.

4. The method of claim 2, wherein, The determining the second motion vector of the current block according to the macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector predictor comprises: determining a correction vector according to the macro-pixel reference block parameter; determining a second reference motion vector difference of the current block according to the correction vector and the second reference motion vector difference; determining the second motion vector of the current block according to the second reference motion vector difference and the second motion vector predictor; or determining a correction vector according to the macro-pixel reference block parameter; determining a second reference motion vector of the current block according to the second reference motion vector difference and the second motion vector predictor; determining the second motion vector of the current block according to the correction vector and the second reference motion vector.

5. The method of claim 4, wherein, The determining the correction vector according to the macro-pixel reference block parameter comprises: determining the correction vector corresponding to the macro-pixel reference block according to the macro-pixel reference block parameter and a preset mapping relationship; wherein the mapping relationship comprises one or more mapping relationships between macro-pixel reference block parameters and correction vectors.

6. The method according to any one of claims 2 to 5, wherein, The macro-pixel reference block parameter comprises a position index of a target macro-pixel reference block, used to determine the target macro-pixel reference block from one or more macro-pixel reference blocks of the current block in a reference image.

7. The method of claim 6, wherein, The decoding a bitstream to determine the macro-pixel reference block parameter of the current block comprises: decoding the bitstream to determine a position index difference value of the target macro-pixel reference block of the current block; determining a reference position index of the current block according to the position index difference value; 8. The method of claim 7, wherein, the reference position index is a preset position index, or the reference position index is a position index used in a last time of using a macro-pixel reference block for motion compensation.

9. The method of claim 6, wherein, the one or more macro-pixel reference blocks include a co-located block in one or more reference macro-pixels having spatial correlation with a current macro-pixel in which a co-located block of the current block is located.

10. The method of claim 9, wherein, the reference macro-pixel includes a neighboring macro-pixel of the current macro-pixel.

11. The method according to any one of claims 1 to 10, wherein, the determining the prediction value of the current block according to the first motion vector and the second motion vector includes: determining a first matching block according to the first motion vector; determining a second matching block according to the second motion vector; determining the prediction value of the current block according to the first matching block and the second matching block.

12. The method of claim 11, wherein, the first motion vector indicates a first matching block of the current block in a first reference image, and the method further includes: decoding the bitstream to determine a first reference image indication parameter; determining the first reference image according to the first reference image indication parameter.

13. The method of claim 11, wherein, the second motion vector indicates a second matching block of the current block in a second reference image, and the method further includes: decoding the bitstream to determine a second reference image indication parameter; determining the second reference image according to the second reference image indication parameter.

14. A video encoding method applied to an encoder, the method comprising: determining a first motion vector difference, a first motion vector prediction value and a second motion vector prediction value of a current block; determining a first motion vector of the current block according to the first motion vector difference and the first motion vector prediction value of the current block; determining a plurality of candidate second motion vectors of the current block according to the second motion vector prediction value; determining a plurality of prediction values of the current block according to the first motion vector and the plurality of candidate second motion vectors; determining a first indication parameter according to an encoding decision of the plurality of prediction values of the current block; encoding the first motion vector difference and the first indication parameter, and writing the obtained encoding bits into a bitstream.

15. The method of claim 14, wherein, the determining a plurality of candidate second motion vectors of the current block according to the second motion vector prediction value includes: determining a second reference motion vector difference of the current block according to the first motion vector difference; determining a candidate second motion vector of the current block according to a candidate macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector prediction value; determining a candidate second motion vector of the current block according to the second reference motion vector difference and the second motion vector prediction value; the determining a first indication parameter according to an encoding decision of the plurality of prediction values of the current block includes: determining a value of the first indication parameter as a first preset value when a result of the decision indicates that the current block uses a macro-pixel reference block for motion compensation. The decision result indicates that the current block does not use the macro-pixel reference block for motion compensation, and a value of the first indication parameter is determined as a second preset value.

16. The method of claim 15, wherein, The determining the second reference motion vector difference of the current block according to the first motion vector difference comprises: determining a reverse vector of the first motion vector difference; The second reference motion vector difference is set to be equal to the reverse vector.

17. The method of claim 15, wherein, The determining the candidate second motion vector of the current block according to the candidate macro-pixel reference block parameter, the second reference motion vector difference and the second motion vector prediction value comprises: determining a correction vector according to the macro-pixel reference block parameter; determining the second motion vector difference of the current block according to the correction vector and the second reference motion vector difference; determining the candidate second motion vector of the current block according to the second motion vector difference and the second motion vector prediction value; or determining a correction vector according to the macro-pixel reference block parameter; determining the second motion vector of the current block according to the second reference motion vector difference and the second motion vector prediction value, and determining a second reference motion vector; determining the candidate second motion vector of the current block according to the correction vector and the second reference motion vector.

18. The method of claim 17, wherein, The determining the correction vector according to the candidate macro-pixel reference block parameter comprises: determining the correction vector corresponding to the candidate macro-pixel reference block according to the candidate macro-pixel reference block parameter and a preset mapping relationship; wherein the mapping relationship comprises a mapping relationship between one or more macro-pixel reference block parameters and correction vectors.

19. The method of any one of claims 15 to 18, wherein, The method further comprises: in a case where the decision result indicates that the current block uses the macro-pixel reference block for motion compensation, encoding the macro-pixel reference block parameter, and writing obtained encoded bits into a bitstream; the macro-pixel reference block parameter comprises a position index of a target macro-pixel reference block, used to determine the target macro-pixel reference block from one or more macro-pixel reference blocks of the current block in a reference image.

20. The method of claim 19, wherein, The encoding the macro-pixel reference block parameter, and writing obtained encoded bits into a bitstream comprises: determining a position index difference value of the target macro-pixel reference block according to the position index of the target macro-pixel reference block and a reference position index of the current block; encoding the position index difference value of the target macro-pixel reference block, and writing obtained encoded bits into a bitstream.

21. The method of claim 20, wherein, The reference position index is a preset position index, or the reference position index is a position index used in last motion compensation using a macro-pixel reference block.

22. The method of claim 19, wherein, The one or more macro-pixel reference blocks comprise one or more reference macro-pixels having spatial correlation with a current macro-pixel of a co-located block of the current block.

23. The method of claim 22, wherein, The reference macro-pixel comprises a neighboring macro-pixel of the current macro-pixel.

24. The method of any one of claims 14 to 23, wherein, The determining a plurality of prediction values of the current block according to the first motion vector and the plurality of candidate second motion vectors comprises: determining a first matching block according to the first motion vector; determining a candidate second matching block according to the candidate second motion vector; determining a candidate prediction value of the current block according to the first matching block and the candidate second matching block.

25. The method of claim 24, wherein, The first motion vector indicates a first matching block of the current block in a first reference image, and the method further comprises: determining a first reference image indication parameter according to the first reference image of the current block; encoding the first reference image indication parameter, and writing the obtained encoded bits into a bitstream.

26. The method of claim 24, wherein, The second motion vector indicates a second matching block of the current block in a second reference image, and the method further comprises: determining a second reference image indication parameter according to the second reference image of the current block; encoding the second reference image indication parameter, and writing the obtained encoded bits into a bitstream.

27. An encoder comprising a first determining unit, a first predicting unit and an encoding unit, wherein: the first determining unit is configured to determine a first motion vector difference, a first motion vector predictor and a second motion vector predictor of a current block, determine a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block, and determine a plurality of candidate second motion vectors of the current block according to the second motion vector predictor; the first predicting unit is configured to determine a plurality of predictors of the current block according to the first motion vector and the plurality of candidate second motion vectors; the first determining unit is further configured to determine a first indication parameter according to the plurality of predictors of the current block for an encoding decision; the encoding unit is configured to encode the first motion vector difference and the first indication parameter, and write the obtained encoded bits into a bitstream.

28. An encoder comprising a first memory and a first processor, wherein: the first memory is configured to store a computer program capable of running on the first processor; the first processor is configured to execute the method according to any one of claims 14 to 26 when running the computer program.

29. A decoder comprising a decoding unit, a second determining unit and a second predicting unit, wherein: the decoding unit is configured to decode a bitstream, and determine a first motion vector difference, a first motion vector predictor and a second motion vector predictor of a current block; the second determining unit is configured to determine a first motion vector of the current block according to the first motion vector difference and the first motion vector predictor of the current block; the decoding unit is further configured to decode a bitstream, and determine a first indication parameter; the second determining unit is further configured to determine a second motion vector of the current block according to the first indication parameter and the second motion vector predictor; the second predicting unit is configured to determine a predictor of the current block according to the first motion vector and the second motion vector, and determine a reconstructed value of the current block according to the predictor of the current block.

30. A decoder comprising a second memory and a second processor, wherein: the second memory is configured to store a computer program capable of running on the second processor; the second processor is configured to execute the method according to any one of claims 1 to 13 when running the computer program.

31. A computer readable storage medium, wherein, The computer readable storage medium stores a code stream generated by the encoding method in any of claims 14 to 26.

32. A computer readable storage medium, wherein, The computer readable storage medium stores a computer program which, when executed, implements the method in any of claims 1 to 13, or implements the method in any of claims 14 to 26.

Citation Information

Patent Citations

  • Video image processing method and coder / decoder

    CN102215387A

  • Method and device for bidirectional inter frame prediction

    CN112866721A

  • Inter-frame prediction method and device, and corresponding encoder and decoder

    CN113709478A

  • Inter prediction method, encoder, decoder and storage medium

    CN114365498A

  • Image Coding And Decoding Method And Apparatus For Efficient Encoding And Decoding Of 3D Light Field Content

    US20130242051A1