Method, apparatus, device, and storage medium for constructing a reference pixel candidate list

By building a spatially adjacent pixel list, the reference pixel selection range is solved, and the reference pixel selection range is limited in the equal value string mode is improved, and the encoding and decoding efficiency is improved.

CN114390289BActive Publication Date: 2025-07-25TENCENT TECHNOLOGY (SHENZHEN) CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011114074.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-10-18
Publication Date
2025-07-25
Estimated Expiration
2040-10-18

AI Technical Summary

Technical Problem

In the existing video encoding technology, the equivalent string mode is limited in the selection range of the reference pixel, resulting in low encoding and decoding efficiency.

Method used

By constructing a list of adjacent pixels in the airspace, expanding the reference pixel selection range, building a preselected reference pixel candidate list of the current codec block, and using adjacent airspace pixels for equal value string prediction encoding and decoding.

Benefits of technology

Improves the encoding and decoding efficiency in the equal value string mode and enhances the reference pixel selection range during the encoding and decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114390289B_ABST
    Figure CN114390289B_ABST
Patent Text Reader

Abstract

The present application provides a method, apparatus, device, and storage medium for constructing a reference pixel candidate list, relating to the technical field of video coding and decoding. The method includes: in response to performing video coding and decoding through an equal-value string mode, determining spatially adjacent pixels of a current coding and decoding block, where the spatially adjacent pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range; constructing a list of spatially adjacent pixels of the current coding and decoding block based on pixel information of target reference pixels among the spatially adjacent pixels of the current coding and decoding block; and constructing a preselected reference pixel candidate list of the current coding and decoding block based on the list of spatially adjacent pixels. The above solution can expand the range of reference pixel selection in the equal-value string mode, thereby improving the coding and decoding efficiency of the expanded equal-value string mode.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments of the present application relate to the technical field of video coding and decoding, and in particular, to a method, apparatus, device, and storage medium for constructing a reference pixel candidate list. Background Art

[0002] In current video compression technologies, such as VVC (Versatile Video Coding) and AVS3 (Audio Video coding Standard 3), a coding and decoding method of string prediction is introduced, and among them, the equal-value string mode is one of the coding and decoding methods of string prediction.

[0003] In the related art, the coding and decoding method of string prediction is executed depending on the reference pixel prediction list. Among them, when performing equal-value string prediction coding and decoding on the current coding and decoding block, first, an initial reference pixel prediction list of the current coding and decoding block is constructed through the reference pixel prediction list of the reconstructed coding and decoding blocks, and then, equal-value string prediction is performed on the current coding and decoding block according to the initial reference pixel prediction list. Summary of the Invention

[0004] The embodiments of the present application provide a method, apparatus, device, and storage medium for constructing a reference pixel candidate list, which can expand the range of reference pixel selection in the equal-value string mode, and further improve the coding and decoding efficiency of the extended equal-value string mode. The technical solution is as follows:

[0005] According to one aspect of the embodiments of the present application, a method for constructing a reference pixel candidate list is provided, and the method includes:

[0006] In response to video coding and decoding in the equal-value string mode, determining the spatial neighboring pixels of the current coding and decoding block, where the spatial neighboring pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range;

[0007] Based on the pixel information of the target reference pixels among the spatial neighboring pixels of the current coding and decoding block, constructing a spatial neighboring pixel list of the current coding and decoding block;

[0008] Based on the spatial neighboring pixel list, constructing a preselected reference pixel candidate list of the current coding and decoding block.

[0009] According to one aspect of the embodiments of the present application, a device for constructing a reference pixel candidate list is provided, and the device includes:

[0010] A pixel determination module, configured to determine the spatial neighboring pixels of the current coding and decoding block in response to video coding and decoding in the equal-value string mode, where the spatial neighboring pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range;

[0011] A neighboring pixel list construction module, configured to construct a spatial neighboring pixel list of the current coding and decoding block based on pixel information of target reference pixels among the spatial neighboring pixels of the current coding and decoding block;

[0012] A reference pixel list construction module, configured to construct a preselected reference pixel candidate list of the current coding and decoding block based on the spatial neighboring pixel list.

[0013] In a possible implementation, the target reference pixels are all pixels among the spatial neighboring pixels of the current coding and decoding block;

[0014] Alternatively, the target reference pixels are pixels at specified positions among the spatial neighboring pixels of the current coding and decoding block;

[0015] Alternatively, the target reference pixels are pixels at positions determined based on the size of the current coding and decoding block among the spatial neighboring pixels of the current coding and decoding block.

[0016] In a possible implementation, the pixel information of the target reference pixels includes at least one of the position information of the target reference pixels and the pixel value information of the target reference pixels;

[0017] The position information includes coordinates of the corresponding pixel in the image where the current image block is located;

[0018] Alternatively, the position information includes coordinates of the corresponding pixel in the maximum coding unit (LCU) row;

[0019] Alternatively, the position information includes coordinates of the corresponding pixel on the luminance image.

[0020] In a possible implementation, the neighboring pixel list construction module is configured to fill the pixel information of the target reference pixels into the spatial neighboring pixel list in a specified filling order.

[0021] In a possible implementation, the neighboring pixel list construction module is configured to,

[0022] after filling the pixel information of each of the target reference pixels located above the current coding and decoding block into the spatial neighboring pixel list, fill the pixel information of each of the target reference pixels located to the left of the current coding and decoding block into the spatial neighboring pixel list;

[0023] Alternatively, after filling the pixel information of each of the target reference pixels located to the left of the current coding / decoding block into the spatial neighboring pixel list, fill the pixel information of each of the target reference pixels located above the current coding / decoding block into the spatial neighboring pixel list;

[0024] Alternatively, alternately fill the pixel information of each of the target reference pixels located above the current coding / decoding block and the pixel information of each of the target reference pixels located to the left of the current coding / decoding block into the spatial neighboring pixel list.

[0025] In a possible implementation, the neighboring pixel list construction module is configured to,

[0026] For the first reference pixel, obtain the absolute value of the difference between the pixel value of the first reference pixel and the pixel values of each of the reference pixels already in the spatial neighboring pixel list; the first reference pixel is any one of the target reference pixels;

[0027] In response to the absolute value of the difference being greater than a first absolute value threshold, fill the pixel information of the first reference pixel into the spatial neighboring pixel list.

[0028] In a possible implementation, the difference between the pixel value of the first reference pixel and the pixel values of each of the reference pixels already in the spatial neighboring pixel list includes the differences in the luminance component and the chrominance component between the pixel value of the first reference pixel and the pixel values of each of the reference pixels already in the spatial neighboring pixel list;

[0029] Or,

[0030] The difference between the pixel value of the first reference pixel and the pixel values of each of the reference pixels already in the spatial neighboring pixel list includes the difference in the luminance component between the pixel value of the first reference pixel and the pixel values of each of the reference pixels already in the spatial neighboring pixel list.

[0031] In a possible implementation, the neighboring pixel list construction module is further configured to,

[0032] When the first reference pixel is unavailable, use the pixel value of the nearest available reference pixel of the first reference pixel as the pixel value of the first reference pixel;

[0033] Or, when the first reference pixel is unavailable, set the pixel value of the first reference pixel to a default value;

[0034] Or, when the first reference pixel is unavailable, skip the first reference pixel.

[0035] In a possible implementation, the reference pixel list construction module includes: a first list acquisition unit, a second list acquisition unit, and a third list acquisition unit.

[0036] The first list acquisition unit is configured to obtain the spatial neighborhood pixel list as the preselected reference pixel candidate list for the current coding and decoding block.

[0037] The second list acquisition unit is configured to merge the spatial neighborhood pixel list with the historical reference pixel candidate list to obtain the preselected reference pixel candidate list for the current coding and decoding block; the historical reference pixel candidate list is constructed based on the reference pixel candidate list of the reconstructed coding and decoding blocks.

[0038] The third list acquisition unit is configured to arrange the historical reference pixel candidate list based on the spatial neighborhood pixel list to obtain the preselected reference pixel candidate list for the current coding and decoding block.

[0039] In a possible implementation, the second list acquisition unit is configured to,

[0040] After sequentially filling each pixel information in the spatial neighborhood pixel list into the preselected reference pixel candidate list, sequentially fill each pixel information in the historical reference pixel candidate list into the preselected reference pixel candidate list until all pixel information in the historical reference pixel candidate list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches the quantity threshold.

[0041] Or,

[0042] After sequentially filling each pixel information in the historical reference pixel candidate list into the preselected reference pixel candidate list, sequentially fill each pixel information in the spatial neighborhood pixel list into the preselected reference pixel candidate list until all pixel information in the spatial neighborhood pixel list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches the quantity threshold.

[0043] In a possible implementation, the second list acquisition unit is configured to,

[0044] For the first pixel information, obtain the absolute value of the difference between the pixel value corresponding to the first pixel information and the pixel values corresponding to the existing pixel information in the preselected reference pixel candidate list; the first pixel information is any one of the spatial neighborhood pixel list and the historical reference pixel candidate list.

[0045] In response to the absolute value of the difference being greater than a second absolute value threshold, fill the first pixel information into the preselected reference pixel candidate list.

[0046] In a possible implementation, the third list obtaining unit is configured to

[0047] For the second pixel information, obtain the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel values corresponding to the respective pixel information in the spatial proximity pixel list; the second pixel information is any pixel information sequentially selected from the historical reference pixel candidate list;

[0048] In response to the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel value corresponding to the fourth pixel information being less than a third absolute value threshold, fill the second pixel information into the preselected reference pixel candidate list; the fourth pixel information is any one in the spatial proximity pixel list.

[0049] In a possible implementation, the third list obtaining unit is configured to

[0050] For the fifth pixel information, obtain the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel values corresponding to the respective pixel information in the spatial proximity pixel list; the fifth pixel information is any pixel information sequentially selected from the historical reference pixel candidate list;

[0051] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being less than or equal to a fourth absolute value threshold, fill the fifth pixel information into the first candidate list; the sixth pixel information is any one in the spatial proximity pixel list;

[0052] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being greater than the fourth absolute value threshold, fill the fifth pixel information into the second candidate list;

[0053] Fill the respective pixel information in the first candidate list and the respective pixel information in the second candidate list into the preselected reference pixel candidate list in sequence; the positions of the respective pixel information in the first candidate list in the preselected reference pixel candidate list are before the positions of the respective pixel information in the second candidate list in the preselected reference pixel candidate list.

[0054] According to one aspect of the embodiments of the present application, a computer device is provided. The computer device includes a processor and a memory. At least one instruction, at least one program, a code set, or an instruction set is stored in the memory. The at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by the processor to implement the above-mentioned reference pixel candidate list construction method.

[0055] According to one aspect of the embodiments of the present application, a computer-readable storage medium is provided. At least one instruction, at least one program, a code set, or an instruction set is stored in the computer-readable storage medium. The at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by a processor to implement the above-mentioned reference pixel candidate list construction method.

[0056] In another aspect, embodiments of the present application provide a computer program product or a computer program. The computer program product or the computer program includes computer instructions. The computer instructions are stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned reference pixel candidate list construction method.

[0057] The technical solutions provided by the embodiments of the present application may include the following beneficial effects:

[0058] Before encoding / decoding a current coding / decoding block, a preselected reference pixel candidate list of the current coding / decoding block is constructed based on the relevant information of the reconstructed pixels adjacent to the current coding block, so that in the subsequent encoding / decoding process of the current coding / decoding block, pixels in the adjacent spatial domain are introduced as references for equal string prediction encoding / decoding, thereby being able to expand the reference pixel selection range in the equal string mode, and further improving the encoding / decoding efficiency of the extended equal string mode. BRIEF DESCRIPTION OF THE DRAWINGS

[0059] Figure 1 is a basic flowchart of a video encoding process exemplarily shown in the present application;

[0060] Figure 2 is a schematic diagram of an inter prediction mode provided by an embodiment of the present application;

[0061] Figure 3 is a schematic diagram of candidate motion vectors provided by an embodiment of the present application;

[0062] Figure 4 is a schematic diagram of an intra block copy mode provided by an embodiment of the present application;

[0063] Figure 5 is a schematic diagram of an intra string copy mode provided by an embodiment of the present application;

[0064] Figure 6 is a simplified block diagram of a communication system provided by one embodiment of the present application;

[0065] Figure 7 is a schematic diagram of the placement of a video encoder and a video decoder in a streaming transmission environment exemplarily shown in the present application;

[0066] Figure 8 is a flowchart of a method for constructing a reference pixel candidate list provided by an embodiment of the present application;

[0067] Figure 9 yes Figure 8 A schematic diagram of the positions of adjacent pixels in the spatial domain involved in the illustrated embodiment;

[0068] Figure 10 yes Figure 8 A schematic diagram of numbering of adjacent pixels in the spatial domain involved in the illustrated embodiment;

[0069] Figure 11 This is a framework diagram of an equivalent string prediction process provided by an embodiment of the present application;

[0070] Figure 12 is a block diagram of a device for constructing a reference pixel candidate list provided by an embodiment of the present application;

[0071] Figure 13 It is a structural block diagram of a computer device provided by an embodiment of the present application. DETAILED DESCRIPTION

[0072] In order to make the objectives, technical solutions and advantages of the present application clearer, the implementation methods of the present application will be further described in detail below in conjunction with the accompanying drawings.

[0073] Before introducing the embodiments of the present application, Figure 1 A brief introduction to video encoding technology. Figure 1 A basic flow chart of a video encoding process is exemplarily shown.

[0074] Video signal refers to an image sequence consisting of multiple frames. A frame is a representation of the spatial information of a video signal. Taking the YUV mode as an example, a frame includes a brightness sample matrix (Y) and two chrominance sample matrices (Cb and Cr). From the perspective of how the video signal is obtained, it can be divided into two methods: captured by a camera and generated by a computer. Due to different statistical characteristics, the corresponding compression encoding methods may also be different.

[0075] In some mainstream video coding technologies, such as the H.265 / HEVC (High Efficient Video Coding) standard, the H.266 / VVC (Versatile Video Coding) standard, and the AVS (Audio Video coding Standard) (such as AVS3), a hybrid coding framework is adopted to perform the following series of operations and processing on the input original video signal:

[0076] 1. Block Partition Structure: The input image is divided into several non-overlapping processing units, and each processing unit will perform similar compression operations. This processing unit is called a CTU (Coding Tree Unit) or an LCU (Large Coding Unit). The CTU can be further divided more finely to obtain one or more basic coding units, called CUs (Coding Units). Each CU is the most basic element in a coding process. The following describes various coding methods that may be adopted for each CU.

[0077] 2. Predictive Coding: It includes methods such as intra-frame prediction and inter-frame prediction. After the original video signal is predicted by the selected reconstructed video signal, a residual video signal is obtained. The encoding end needs to decide on the most suitable one among many possible predictive coding modes for the current CU and inform the decoding end. Among them, intra-frame prediction means that the predicted signal comes from the already encoded and reconstructed area within the same image. Inter-frame prediction means that the predicted signal comes from other images (called reference images) that have been encoded and are different from the current image.

[0078] 3. Transform & Quantization: The residual video signal undergoes transformation operations such as DFT (Discrete Fourier Transform) and DCT (Discrete Cosine Transform), converting the signal into the transform domain, which is called transform coefficients. The signal in the transform domain further undergoes a lossy quantization operation, losing certain information, making the quantized signal conducive to compressed representation. In some video coding standards, there may be more than one transform method to choose from. Therefore, the encoder also needs to select one of the transforms for the current CU and inform the decoder. The fineness of quantization is usually determined by the quantization parameter. A larger value of QP (Quantization Parameter) means that coefficients in a larger value range will be quantized to the same output, usually resulting in greater distortion and a lower bitrate; conversely, a smaller value of QP means that coefficients in a smaller value range will be quantized to the same output, usually resulting in less distortion and a corresponding higher bitrate.

[0079] 4. Entropy Coding or Statistical Coding: The quantized transform domain signal will be statistically compressed encoded according to the frequency of each value, and finally a binary (0 or 1) compressed bitstream is output. At the same time, other information generated during encoding, such as the selected mode, motion vectors, etc., also needs to be entropy encoded to reduce the bitrate. Statistical coding is a lossless coding method that can effectively reduce the bitrate required to represent the same signal. Common statistical coding methods include variable length coding (VLC for short) or context-adaptive binary arithmetic coding (CABAC for short).

[0080] 5. Loop Filtering: The encoded image can be reconstructed into a decoded image after undergoing inverse quantization, inverse transformation and prediction compensation (the reverse operation of 2 to 4 above). Compared with the original image, the reconstructed image has some information that is different from the original image due to the influence of quantization, resulting in distortion. Filtering the reconstructed image, such as deblocking, SAO (Sample Adaptive Offset) or ALF (Adaptive Lattice Filter), can effectively reduce the distortion caused by quantization. Since these filtered reconstructed images will be used as a reference for subsequent encoded images and used to predict future signals, the above filtering operation is also called loop filtering, and the filtering operation in the encoding loop.

[0081] According to the above encoding process, it can be seen that at the decoding end, for each CU, after the decoder obtains the compressed bitstream, it first performs entropy decoding to obtain various mode information and quantized transform coefficients. Each coefficient is dequantized and inversely transformed to obtain a residual signal. On the other hand, based on the known encoding mode information, the prediction signal corresponding to the CU can be obtained. After adding the two, the reconstructed signal can be obtained. Finally, the reconstructed value of the decoded image needs to undergo a loop filtering operation to generate the final output signal.

[0082] Some mainstream video coding standards, such as HEVC, VVC, AVS3, etc., all adopt a block-based hybrid coding framework. They divide the original video data into a series of coding blocks, and combine video coding methods such as prediction, transform and entropy coding to achieve video data compression. Among them, motion compensation is a commonly used prediction method for video coding. Motion compensation is based on the redundant characteristics of video content in the time domain or spatial domain, and derives the prediction value of the current coding block from the encoded area. This type of prediction method includes: inter-frame prediction, intra-frame block copy prediction, intra-frame string copy prediction, etc. In specific coding implementations, these prediction methods may be used alone or in combination. For coding blocks using these prediction methods, it is usually necessary to explicitly or implicitly encode one or more two-dimensional displacement vectors in the bitstream to indicate the displacement of the current block (or the same-position block of the current block) relative to one or more reference blocks.

[0083] It should be noted that in different prediction modes and different implementations, the displacement vectors may have different names. In this article, they are uniformly described as follows: 1) The displacement vector in the inter-frame prediction mode is called the motion vector (MotionVector, abbreviated as MV); 2) The displacement vector in the IBC (Intra Block Copy) prediction mode is called the block vector (Block Vector, abbreviated as BV); 3) The displacement vector in the ISC (Intra String Copy) prediction mode is called the string vector (String Vector, abbreviated as SV). Intra string copy is also called "string prediction" or "string matching", etc.

[0084] The MV refers to the displacement vector used in the inter-frame prediction mode, which points from the current image to the reference image, and its value is the coordinate offset between the current block and the reference block, where the current block and the reference block are in two different images. In the inter-frame prediction mode, motion vector prediction can be introduced. By predicting the motion vector of the current block, the predicted motion vector corresponding to the current block is obtained, and the difference between the predicted motion vector corresponding to the current block and the actual motion vector is encoded and transmitted. Compared with directly encoding and transmitting the actual motion vector corresponding to the current block, it is beneficial to save bit overhead. In the embodiments of the present application, the predicted motion vector refers to the predicted value of the motion vector of the current block obtained through motion vector prediction technology.

[0085] The BV refers to the displacement vector used in the IBC prediction mode, and its value is the coordinate offset between the current block and the reference block, where the current block and the reference block are both in the current image. In the IBC prediction mode, block vector prediction can be introduced. By predicting the block vector of the current block, the predicted block vector corresponding to the current block is obtained, and the difference between the predicted block vector corresponding to the current block and the actual block vector is encoded and transmitted. Compared with directly encoding and transmitting the actual block vector corresponding to the current block, it is beneficial to save bit overhead. In the embodiments of the present application, the predicted block vector refers to the predicted value of the block vector of the current block obtained through block vector prediction technology.

[0086] The SV refers to the displacement vector used in the ISC prediction mode, and its value is the coordinate offset between the current string and the reference string, where the current string and the reference string are both in the current image. In the ISC prediction mode, string vector prediction can be introduced. By predicting the string vector of the current string, the predicted string vector corresponding to the current string is obtained, and the difference between the predicted string vector corresponding to the current string and the actual string vector is encoded and transmitted. Compared with directly encoding and transmitting the actual string vector corresponding to the current string, it is beneficial to save bit overhead. In the embodiments of the present application, the predicted string vector refers to the predicted value of the string vector of the current string obtained through string vector prediction technology.

[0087] The following introduces several different prediction modes:

[0088] I. Inter-frame prediction mode

[0089] As Figure 2 shown, inter-frame prediction utilizes the correlation in the video temporal domain, uses the pixels of adjacent encoded images to predict the pixels of the current image, so as to effectively remove the redundancy in the video temporal domain and can effectively save the bits of the encoded residual data. Among them, P is the current frame, Pr is the reference frame, B is the current block to be encoded, and Br is the reference block of B. B’ has the same coordinate position as B in the image, the coordinates of Br are (xr,yr), and the coordinates of B’ are (x,y). The displacement between the current block to be encoded and its reference block is called the motion vector (MV), that is:

[0090] MV = (xr - x, yr - y).

[0091] Considering that adjacent blocks in the temporal or spatial domain have strong correlation, the MV prediction technology can be adopted to further reduce the bits required for encoding MV. In H.265 / HEVC, inter-frame prediction includes two MV prediction technologies: Merge and AMVP (Advanced Motion Vector Prediction).

[0092] The Merge mode will establish an MV candidate list for the current PU (Prediction Unit). There are 5 candidate MVs (and their corresponding reference images) in it. Traverse these 5 candidate MVs and select the one with the minimum rate-distortion cost as the optimal MV. If the codec establishes the candidate list in the same way, the encoder only needs to transmit the index of the optimal MV in the candidate list. It should be noted that there is also a skip mode in the MV prediction technology of HEVC, which is a special case of the Merge mode. After finding the optimal MV in the Merge mode, if the current block and the reference block are basically the same, then there is no need to transmit the residual data, and only the index of the MV and a skip flag need to be transmitted.

[0093] The MV candidate list established by the Merge mode includes two situations in the spatial and temporal domains. For the B Slice (B-frame image), it also includes the combined list method. Among them, at most 4 candidate MVs are provided in the spatial domain, and its establishment is as Figure 3 shown in part (a) of. The spatial domain list is established in the order of A1→B1→B0→A0→B2, where B2 is the substitute, that is, when one or more of A1, B1, B0, A0 do not exist, the motion information of B2 needs to be used; at most only 1 candidate MV is provided in the temporal domain, and its establishment is as Figure 3 shown in part (b) of, and is obtained by scaling the MV of the co-located PU according to the following formula:

[0094] curMV = td * colMV / tb;

[0095] Wherein, curMV represents the MV of the current PU, colMV represents the MV of the co-located PU, td represents the distance between the current picture and the reference picture, and tb represents the distance between the co-located picture and the reference picture. If the PU at the D0 position on the co-located block is unavailable, it is replaced by the co-located PU at the D1 position. For the PU in the B Slice, since there are two MVs, its MV candidate list also needs to provide two MVPs (Motion Vector Predictor). HEVC generates a combined list for the B Slice by combining the first 4 candidate MVs in the MV candidate list pairwise.

[0096] Similarly, the AMVP mode utilizes the MV correlation of spatially and temporally neighboring blocks to establish an MV candidate list for the current PU. Different from the Merge mode, the optimal predicted MV is selected from the MV candidate list in the AMVP mode, and differential coding is performed with the optimal MV obtained by motion search for the current block to be encoded, that is, encoding MVD = MV - MVP, where MVD is the Motion Vector Difference; at the decoding end, by establishing the same list, only the serial number of MVD and MVP in this list is required to calculate the MV of the current decoded block. The MV candidate list in the AMVP mode also includes two cases of spatial and temporal domains. The difference is that the length of the MV candidate list in the AMVP mode is only 2.

[0097] As described above, in the AMVP mode of HEVC, it is necessary to encode the MVD. In HEVC, the resolution of the MVD is controlled by the use_integer_mv_flag in the slice_header. When the value of this flag is 0, the MVD is encoded at a 1 / 4 (luma) pixel resolution; when the value of this flag is 1, the MVD is encoded at an integer (luma) pixel resolution. VVC uses a method of Adaptive Motion Vector Resolution (AMVR). This method allows each CU to adaptively select the resolution for encoding the MV. In the normal AMVP mode, the optional resolutions include 1 / 4, 1 / 2, 1, and 4 pixel resolutions. For a CU with at least one non-zero MVD component, first, a flag is encoded to indicate whether quarter luma sample MVD precision is used for the CU. If this flag is 0, the MVD of the current CU is encoded at a 1 / 4 pixel resolution. Otherwise, a second flag needs to be encoded to indicate that the CU uses a 1 / 2 pixel resolution or other MVD resolutions. Otherwise, a third flag is encoded to indicate whether a 1 pixel resolution or a 4 pixel resolution is used for the CU.

[0098] II. IBC Prediction Mode

[0099] IBC is an intra coding tool adopted in the Screen Content Coding (SCC) extension of HEVC, which significantly improves the coding efficiency of screen content. In AVS3 and VVC, IBC technology is also adopted to improve the performance of screen content coding. IBC utilizes the spatial correlation of screen content videos and uses the pixels of the encoded image on the current image to predict the pixels of the current block to be encoded, which can effectively save the bits required for encoding pixels. As Figure 4 shown, in IBC, the displacement between the current block and its reference block is called BV (block vector). H.266 / VVC adopts a BV prediction technology similar to inter prediction to further save the bits required for encoding BV. VVC adopts a BV prediction similar to the AMVP mode in inter prediction and allows encoding the BVD at a 1 or 4 pixel resolution.

[0100] III. ISC Prediction Mode

[0101] The ISC technology divides an encoded block into a series of pixel strings or unmatched pixels according to a certain scanning order (such as raster scanning, back-and-forth scanning, and Zig-Zag scanning, etc.). Similar to IBC, each string searches for a reference string with the same shape in the encoded area of the current image, derives the predicted value of the current string, and by encoding the residual between the pixel value of the current string and the predicted value, instead of directly encoding the pixel value, it can effectively save bits. Figure 5The schematic diagram of intra-frame string copy is given. The dark gray area is the encoded area. The 28 white pixels are string 1, the 35 light gray pixels are string 2, and the 1 black pixel represents the unmatched pixel. The displacement between string 1 and its reference string is the Figure 5 string vector 1 in Figure 5 ; the displacement between string 2 and its reference string is the

[0102] string vector 2 in

[0103] IV. Equal-value string mode

[0104] The equal-value string mode is a sub-mode of intra-frame string copy. Similar to intra-frame string copy, in the equal-value string mode, a coding and decoding block is divided into a series of pixel strings according to a certain scanning order, and the characteristic is that all pixels in the pixel string have the same predicted value. The equal-value string mode needs to code the length and predicted value of each string in the current coding and decoding block.

[0105] There are the following methods for coding the predicted value:

[0106] 1) Code the predicted value directly;

[0107] 2) Construct a reference pixel candidate list L1 and code the index of the predicted value in L1;

[0108] 3) Construct a reference pixel prediction list L0, derive the reference pixel candidate list L1 from this list according to the reuse flag (reuse_flag), and code the reuse_flag and the index of the coded predicted value in L1.

[0109] In the current implementation of equal-value strings, the above method 3) is currently used to code the predicted value.

[0110] The current implementation of equal-value strings is as follows:

[0111] Equal-value strings often appear in screen content images, and the pixel values of these equal-value strings themselves have a high occurrence frequency. According to this characteristic, through the equal-value string coding technology of string copy intra-frame prediction, when these pixels first appear in an LCU row, record and save the positions of these pixels in the current LCU row, which is called the frequently-occurring position, and the pixels of the equal-value string are also called frequently-occurring position pixels.

[0112] The frequent positions and the pixels at the frequent positions will subsequently pass through the Historypoint vector predictor Candidate List (HpvpCandList, which is equivalent to the HmvpCandList for inter-frame prediction or the HbvpCandList for IBC, and can hold up to 15 point vectors at most), and are repeatedly taken out and used as reference pixels. The frequent positions are represented by coordinates with the upper left corner position of the current LCU row as the origin, and are called the point vectors (PV) of point prediction.

[0113] Before the CU starts point prediction for the equal-value string and unit basis vector string sub-modes, the pixels inside the CU are clustered to obtain K pixel values with higher occurrence frequencies. If a certain pixel value is the same as or the difference from the pixel value at the frequent position corresponding to a certain pv placed in a PrevHpvpCandList array is less than a certain threshold, then this pv is directly placed into the HpvpCandList of the current cu, obtaining the initial HpvpCandList of the current CU.

[0114] The HpvpCandList is continuously expanded during the process of encoding each evs in the current cu one by one. Whenever a new frequent position appears, the pv of this frequent position is added to the HpvpCandList.

[0115] The PrevHpvpCandList is initially empty. After completing the in-frame prediction encoding of the string copy for a current CU, the PrevHpvpCandList needs to be updated:

[0116] First, delete the overlapping part between it and the current HpvpCandList from the PrevHpvpCandList, and fill the pv in the HpvpCandList of the decoded CU into the PrevHpvpCandList from the head. The PrevHpvpCandList can store at most 28 previous pvs, and the excess part will be removed.

[0117] The encoding process of the equal-value string prediction value is as follows:

[0118] S1, encode the reuse_flag, indicating whether the pv in the PrevHpvpCandList exists in the HpvpCandList;

[0119] S2, encode the length of the equal-value string;

[0120] S3. Encode the predicted value. If the pixel value of the equal-value string that appears in the encoding is equal to the pixel value pointed to by a certain pv in the hpvpCandList, write the index corresponding to the pv into the bitstream; otherwise, write the pixel value itself into the bitstream and use this value to expand the reference pixel candidate list.

[0121] The decoding process of the equal-value string predicted value is as follows:

[0122] S1. Similar to the encoding end, construct PrevHpvpCandList;

[0123] S2. Construct the initial HpvpCandList according to the reuse_flag;

[0124] S3. Decode to obtain the length of the equal-value string;

[0125] S4. Decode the obtained index idx. If idx is less than the length of the HpvpCandList, take out the pv from the HpvpCandList according to idx, and then obtain the pixel value from the constant position specified by pv; otherwise, decode the pixel value from the bitstream and use this value to expand the reference pixel candidate list.

[0126] As Figure 6 shown, it shows a simplified block diagram of a communication system provided by an embodiment of the present application. The communication system 200 includes multiple devices, and the devices can communicate with each other through, for example, the network 250. For example, the communication system 200 includes a first device 210 and a second device 220 interconnected through the network 250. In Figure 6 the embodiment, the first device 210 and the second device 220 perform unidirectional data transmission. For example, the first device 210 can encode video data, such as a video picture stream collected by the first device 210, for transmission to the second device 220 through the network 250. The encoded video data is transmitted in the form of one or more encoded video bitstreams. The second device 220 can receive the encoded video data from the network 250, decode the encoded video data to recover the video data, and display the video picture according to the recovered video data. Unidirectional data transmission is relatively common in applications such as media services.

[0127] In another embodiment, the communication system 200 includes a third device 230 and a fourth device 240 that perform a two-way transmission of encoded video data, which may occur, for example, during a video conference. For two-way data transmission, each of the third device 230 and the fourth device 240 may encode video data (such as a video picture stream captured by the device) for transmission over the network 250 to the other of the third device 230 and the fourth device 240. Each of the third device 230 and the fourth device 240 may also receive the encoded video data transmitted by the other of the third device 230 and the fourth device 240, may decode the encoded video data to recover the video data, and may display the video picture on an accessible display device based on the recovered video data.

[0128] In Figure 6 the embodiment of, the first device 210, the second device 220, the third device 230, and the fourth device 240 may be computer devices such as servers, personal computers, and smart phones, but the principles disclosed in this application are not limited thereto. The embodiments of this application are applicable to PCs (Personal Computers), mobile phones, tablet computers, media players, and / or dedicated video conferencing devices. The network 250 represents any number of networks that transmit encoded video data between the first device 210, the second device 220, the third device 230, and the fourth device 240, including, for example, wired and / or wireless communication networks. The communication network 250 may exchange data in circuit-switched and / or packet-switched channels. The network may include a telecommunications network, a local area network, a wide area network, and / or the Internet. For the purposes of this application, unless otherwise explained hereinafter, the architecture and topology of the network 250 may be immaterial to the operations disclosed in this application.

[0129] As an example, Figure 7 illustrates the placement of video encoders and video decoders in a streaming environment. The subject matter disclosed in this application is equally applicable to other video-supported applications, including, for example, video conferencing, digital TV (television), storing compressed video on digital media including CD (Compact Disc), DVD (Digital Versatile Disc), memory sticks, and so on.

[0130] The streaming system may include an acquisition subsystem 313, which may include a video source 301 such as a digital camera, which creates an uncompressed video picture stream 302. In an embodiment, the video picture stream 302 includes samples taken by a digital camera. The video picture stream 302 is depicted as a thick line to emphasize the high data volume of the video picture stream compared to the encoded video data 304 (or the encoded video code stream), and the video picture stream 302 can be processed by an electronic device 320, which includes a video encoder 303 coupled to the video source 301. The video encoder 303 may include hardware, software, or a combination of hardware and software to implement or implement various aspects of the disclosed subject matter as described in more detail below. Compared to the video picture stream 302, the encoded video data 304 (or the encoded video code stream 304) is depicted as a thin line to emphasize the lower data volume of the encoded video data 304 (or the encoded video code stream 304), which can be stored on the streaming server 305 for future use. One or more streaming client subsystems, such as Figure 7 , can access the streaming server 305 to retrieve the copies 307 and 309 of the encoded video data 304. The client subsystem 306 can include, for example, a video decoder 310 in an electronic device 330. The video decoder 310 decodes the incoming copy 307 of the encoded video data and produces an output video picture stream 311 that can be presented on a display 312 (e.g., a display screen) or another presentation device (not depicted). In some streaming systems, the encoded video data 304, video data 307, and video data 309 (e.g., video bitstreams) can be encoded according to certain video encoding / compression standards.

[0131] It should be noted that the electronic device 320 and the electronic device 330 may include other components (not shown). For example, the electronic device 320 may include a video decoder (not shown), and the electronic device 330 may also include a video encoder (not shown). The video decoder is used to decode the received encoded video data; the video encoder is used to encode the video data.

[0132] It should be noted that the technical solution provided in the embodiments of the present application can be applied to the H.266 / VVC standard, the H.265 / HEVC standard, AVS (such as AVS3) or the next-generation video coding and decoding standard, and the embodiments of the present application are not limited to this.

[0133] In the current equivalent string prediction, the construction of the reference pixel candidate list only uses the information of the historical coding block, while ignoring the correlation between adjacent pixels in the video image. Due to the lack of historical coding block information, efficient reference pixel prediction cannot be achieved, which affects the coding efficiency.

[0134] The solutions shown in the embodiments of the present application propose a method for constructing a reference pixel candidate list in an equivalent string mode. This method combines spatially adjacent pixels to derive the reference pixel candidate list of the equivalent string. That is, in response to video coding and decoding in the equivalent string mode, the spatially adjacent pixels of the current coding and decoding block are determined. The spatially adjacent pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range; based on the pixel information of the target reference pixels among the spatially adjacent pixels of the current coding and decoding block, a list of spatially adjacent pixels of the current coding and decoding block is constructed; based on the list of spatially adjacent pixels, a preselected reference pixel candidate list of the current coding and decoding block is constructed.

[0135] Through the above solution, when encoding the predicted value of the equivalent string based on the preselected reference pixel candidate list subsequently, it helps to improve the encoding efficiency. This solution can be applied to video codecs or video compression products that use equivalent strings.

[0136] For the method provided by the embodiments of the present application, the execution subject of each step can be a decoding device or an encoding device. During the processes of video decoding and video encoding, the technical solutions provided by the embodiments of the present application can be adopted to perform image reconstruction. Both the decoding device and the encoding device can be computer devices, which refer to electronic devices with data calculation, processing, and storage capabilities, such as PCs, mobile phones, tablet computers, media players, dedicated video conferencing devices, servers, and so on.

[0137] In addition, the method provided by the present application can be used alone or combined with other methods in any order. The encoder and decoder based on the method provided by the present application can be implemented by one or more processors or one or more integrated circuits.

[0138] Please refer to Figure 8 , which shows a flowchart of the reference pixel candidate list construction method provided by an embodiment of the present application. For ease of explanation, only the case where the execution subject of each step is a computer device is introduced. This method may include the following steps:

[0139] Step 801, in response to video coding and decoding in the equivalent string mode, determine the spatially adjacent pixels of the current coding and decoding block.

[0140] Among them, the above-mentioned spatially adjacent pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range.

[0141] For example, taking the codec block above the current coding block and / or the codec block on the left as the reconstructed codec block, the above-mentioned spatial neighboring pixels can be the pixels in the nearest row above the current coding block and / or the pixels in the nearest column to the left of the current coding block; or, the above-mentioned spatial neighboring pixels can be the pixels in the second row above and to the left of the current coding block and / or the pixels in the second column to the left of the current coding block; or, the above-mentioned spatial neighboring pixels can be the pixels in the nearest two rows above the current coding block and / or the pixels in the nearest two columns to the left of the current coding block.

[0142] For example, please refer to Figure 9 , which shows a schematic diagram of the positions of spatial neighboring pixels involved in the embodiments of the present application. As Figure 9 shown, there are a reconstructed codec block 92, a reconstructed codec block 93, and a reconstructed codec block 94 above and to the left of the current codec block 91 respectively. Among them, in the area formed by the reconstructed codec block 92, the reconstructed codec block 93, and the reconstructed codec block 94, there are a first pixel row 91a and a second pixel row 91b that are spatially adjacent to the current codec block 91. The first pixel row 91a is the first row of pixels above the current codec block 91, and the second pixel row 91b is the second row of pixels above the current codec block 91; in the area formed by the reconstructed codec block 92, the reconstructed codec block 93, and the reconstructed codec block 94, there are a first pixel column 91c and a second pixel column 91d that are spatially adjacent to the current codec block 91. The first pixel column 91c is the first column of pixels to the left of the current codec block 91, and the second pixel column 91d is the second column of pixels to the left of the current codec block 91; in Figure 9 the image shown, the codec can determine each pixel in the first pixel row 91a and the first pixel column 91c as the spatial neighboring pixels of the current codec block 91; or, the codec can determine each pixel in the second pixel row 91b and the second pixel column 91d as the spatial neighboring pixels of the current codec block 91; or, the codec can determine each pixel in the first pixel row 91a, the first pixel column 91c, the second pixel row 91b, and the second pixel column 91d as the spatial neighboring pixels of the current codec block 91.

[0143] Among them, the above Figure 9 shown solution only takes some or all of the pixels in the two rows / two columns of pixels above and to the left of the current codec block as the spatial neighboring pixels of the current codec block 91. In other possible implementation manners, the spatial neighboring pixels of the current codec block 91 can be more or less. For example, some or all of the pixels in the three rows / three columns of pixels above and to the left of the current codec block can be taken as the spatial neighboring pixels of the current codec block 91.

[0144] Step 802: Construct a list of spatial neighboring pixels based on the pixel information of the target reference pixels among the spatial neighboring pixels of the current coding and decoding block.

[0145] In a possible implementation, the pixel information of the target reference pixel includes at least one of the position information of the target reference pixel and the pixel value information of the target reference pixel;

[0146] The position information includes the coordinates of the corresponding pixel in the image where the current image block is located;

[0147] Alternatively, the position information includes the coordinates of the corresponding pixel in the maximum coding unit (LCU) row;

[0148] Alternatively, the position information includes the coordinates of the corresponding pixel on the luminance image.

[0149] In the embodiments of the present application, the pixel information of the spatial neighboring pixels includes the position of the pixel, such as the coordinates of the pixel in the image, or the coordinates of the pixel in the LCU row; for a YUV420 image, the pixel information of the spatial neighboring pixels can also be the coordinates of the pixel on the luminance image.

[0150] Alternatively, the pixel information of the above-mentioned spatial neighboring pixels includes the pixel value of the pixel.

[0151] Alternatively, the pixel information of the above-mentioned spatial neighboring pixels includes both the position and the pixel value of the pixel.

[0152] In a possible implementation, the target reference pixel is all the pixels among the spatial neighboring pixels of the current coding and decoding block;

[0153] Alternatively, the target reference pixel is the pixel at a specified position among the spatial neighboring pixels of the current coding and decoding block;

[0154] Alternatively, the target reference pixel is the pixel at a position determined based on the size of the current coding and decoding block among the spatial neighboring pixels of the current coding and decoding block.

[0155] In the embodiments of the present application, the above-mentioned target reference pixel can come from the following optional positions among the spatial neighboring pixels:

[0156] 1) The target reference pixel includes the reconstructed pixels directly adjacent to the current coding and decoding block.

[0157] For example, taking the width of the current coding and decoding block as W and the height as H (i.e., the width is W pixels and the height is H pixels) as an example, the pixel information of the W reconstructed pixels in the row above the current coding and decoding block and the H reconstructed pixels in the left column are added to the list of spatial neighboring pixels (for example, numbered as list L1).

[0158] 2) The target reference pixels include the reconstructed pixels that are not directly adjacent to the current coding and decoding block.

[0159] For example, the pixel information of W reconstructed pixels in the second row above the current coding and decoding block and H reconstructed pixels in the second column to the left of the current coding and decoding block is added to the list L1.

[0160] 3) The target reference pixels include some of the reconstructed pixels that are directly and / or not directly adjacent to the current coding and decoding block.

[0161] For example, please refer to Figure 10 , which shows the schematic diagram of the numbering of the spatial neighboring pixels involved in the embodiments of the present application. Taking the target reference pixels including some of the reconstructed pixels that are directly adjacent to the current coding and decoding block as an example, the pixel information of the pixels with position numbers TL, T[0], T[W / 2] (or T[W / 2 - 1]), T[W] (or T[W - 1]), and L[0], L[H / 2] (or L[H / 2 - 1]), L[H] (or L[H - 1]) can be added to the spatial neighboring pixel list.

[0162] 4) The target reference pixels are all or some of the spatial neighboring pixels determined based on the size (such as height and / or width) of the current coding and decoding block.

[0163] In the embodiments of the present application, the codec can also select the target reference pixels according to the size of the current decoding block.

[0164] For example, taking Figure 10 as an example, if the width of the current coding and decoding block is less than 32, the pixel information of W pixels with pixel positions {T[0], T[1], …, T[W - 1]} is added to the list L1. If the height of the current coding and decoding block is less than 32, the pixel information of H pixels with pixel positions {L[0], L[1], …, L[H - 1]} is added to the list L1.

[0165] Or, taking Figure 10 as an example, if the width of the current coding and decoding block is less than 32, W / 2 pixels with pixel positions {T[0], T[2], …, T[W - 2]} (assuming W is even) are added to the list L1. If the height of the current coding and decoding block is greater than 32, H / 2 pixels with pixel positions {L[0], L[2], …, L[H - 2]} (assuming H is even) are added to the list L1.

[0166] In a possible implementation manner, when constructing the spatial neighboring pixel list based on the pixel information of the target reference pixels among the spatial neighboring pixels of the current coding and decoding block, the pixel information of the target reference pixels is filled into the spatial neighboring pixel list according to the specified filling order.

[0167] In an embodiment of the present application, when constructing the spatial neighborhood pixel list L1, the codec can fill the pixel information of each target reference pixel into the list L1 in a certain priority order.

[0168] In a possible implementation, when the codec fills the pixel information of the target reference pixel into the spatial neighborhood pixel list according to the specified filling order, the following operations can be performed:

[0169] After filling the pixel information of each target reference pixel located above the current coding / decoding block into the spatial neighborhood pixel list, fill the pixel information of each target reference pixel located to the left of the current coding / decoding block into the spatial neighborhood pixel list;

[0170] Or, after filling the pixel information of each target reference pixel located to the left of the current coding / decoding block into the spatial neighborhood pixel list, fill the pixel information of each target reference pixel located above the current coding / decoding block into the spatial neighborhood pixel list;

[0171] Or, alternately fill the pixel information of each target reference pixel located above the current coding / decoding block and the pixel information of each target reference pixel located to the left of the current coding / decoding block into the spatial neighborhood pixel list.

[0172] In an embodiment of the present application, the codec can fill the pixel information of each target reference pixel into the list L1 according to the following optional order:

[0173] 1) First fill the target reference pixels above the current coding / decoding block, and then fill the target reference pixels to the left of the current coding / decoding block;

[0174] For example, the codec first fills the pixel information of each target reference pixel above the current coding / decoding block into the list L1 in sequence from left to right. After all the pixel information of the target reference pixels above the current coding / decoding block is filled, then fill the pixel information of each target reference pixel to the left of the current coding / decoding block into the list L1 in sequence from top to bottom.

[0175] 2) First fill the target reference pixels to the left of the current coding / decoding block, and then fill the target reference pixels above the current coding / decoding block;

[0176] For example, the codec first fills the pixel information of each target reference pixel to the left of the current coding / decoding block into the list L1 in sequence from top to bottom. After all the pixel information of the target reference pixels to the left of the current coding / decoding block is filled, then fill the pixel information of each target reference pixel above the current coding / decoding block into the list L1 in sequence from left to right.

[0177] 3) Alternately fill the target reference pixels to the left and above the current coding block. For example, Figure 10 taking [example] as an example, the codec can sequentially fill the pixel information of the target reference pixels into the list L1 in the order of L[0], T[0], L[1], T[1], …, L[H - 1], T[W - 1].

[0178] In a possible implementation, when filling the pixel information of the target reference pixels into the spatial neighboring pixel list according to the specified filling order, the codec performs the following operations:

[0179] For the first reference pixel, obtain the absolute value of the difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list; the first reference pixel is any one of the target reference pixels;

[0180] In response to the absolute value of the difference being greater than the first absolute value threshold, fill the pixel information of the first reference pixel into the spatial neighboring pixel list.

[0181] In a possible implementation, the difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list includes the differences in the luminance component and chrominance component between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list;

[0182] Or,

[0183] the difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list includes the difference in the luminance component between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list.

[0184] In the embodiments of the present application, for the first reference pixel among each target reference pixel, when it is necessary to fill the pixel information of the first reference pixel into the list L1 according to the filling order, the codec can perform the following duplicate checking strategies:

[0185] 1) Do not perform duplicate checking and directly fill the corresponding pixel information into the list L1;

[0186] 2) It is necessary to compare with the Y, U, and V component pixel values of the existing pixels in the list L1. When the absolute value of the pixel difference between the first reference pixel and any pixel in the list in each component is greater than the preset threshold (where when the preset threshold is 0, it means that the component pixel values are not repeated), fill the pixel information of the first reference pixel into the list L1.

[0187] 3) It is necessary to compare with the Y - component pixel values of the pixels already existing in the list L1. When the absolute value of the pixel difference between the first reference pixel and any pixel in the list in terms of the Y - component is greater than a preset threshold, the pixel information of the first reference pixel is filled into the list L1.

[0188] In a possible implementation, when the first reference pixel is unavailable, the pixel value of the nearest available reference pixel of the first reference pixel is used as the pixel value of the first reference pixel; for example, using rules similar to those for intra - prediction reference pixel extension, the pixel value of the first reference pixel is set to the value of the nearest available reference pixel.

[0189] Alternatively, when the first reference pixel is unavailable, the pixel value of the first reference pixel is set to a default value.

[0190] Alternatively, when the first reference pixel is unavailable, the first reference pixel is skipped.

[0191] Step 803: Based on the spatial - domain neighboring pixel list, construct a pre - selected reference pixel candidate list for the current coding and decoding block.

[0192] In a possible implementation, when constructing the pre - selected reference pixel candidate list for the current coding and decoding block based on the spatial - domain neighboring pixel list, the codec can perform the following operations:

[0193] Obtain the spatial - domain neighboring pixel list as the pre - selected reference pixel candidate list for the current coding and decoding block;

[0194] Or,

[0195] Merge the spatial - domain neighboring pixel list with the historical reference pixel candidate list to obtain the pre - selected reference pixel candidate list for the current coding and decoding block; the historical reference pixel candidate list is constructed based on the reference pixel candidate list of the already reconstructed coding and decoding blocks;

[0196] Or,

[0197] Arrange the historical reference pixel candidate list based on the spatial - domain neighboring pixel list to obtain the pre - selected reference pixel candidate list for the current coding and decoding block.

[0198] In the embodiments of the present application, the codec can derive a pre - selected reference pixel candidate list for the current coding and decoding block based on the above - mentioned spatial - domain neighboring pixel list, for example, denoted as list L, where the length of list L can be set to N, and the maximum length of N is less than the preset threshold N_T. The codec can derive list L through the following optional methods:

[0199] 1) List L consists of L1, that is, N = N1, where N1 is the length of list L1;

[0200] 2) The list L is composed of list L1 and list L2. List L2 records the equal-value string reference pixel information of historical decoded blocks and has a length of N2.

[0201] In a possible implementation, the spatial neighboring pixel list is merged with the historical reference pixel candidate list to obtain a preselected reference pixel candidate list for the current coding and decoding block, including:

[0202] After sequentially filling each pixel information in the spatial neighboring pixel list into the preselected reference pixel candidate list, each pixel information in the historical reference pixel candidate list is sequentially filled into the preselected reference pixel candidate list until all pixel information in the historical reference pixel candidate list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches the quantity threshold;

[0203] Or,

[0204] After sequentially filling each pixel information in the historical reference pixel candidate list into the preselected reference pixel candidate list, each pixel information in the spatial neighboring pixel list is sequentially filled into the preselected reference pixel candidate list until all pixel information in the spatial neighboring pixel list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches the quantity threshold.

[0205] For example, when the list L is composed of list L1 and list L2, the codec can export the list L through the following optional methods:

[0206] 1) First fill each pixel information in list L1 into list L, and then fill each pixel information in list L2 into list L; if the length of list L reaches N_T during the filling process, or if all pixel information in list L1 and list L2 has been filled, then end the filling and export list L.

[0207] 2) First fill each pixel information in list L2 into list L, and then fill each pixel information in list L1 into list L; if the length of list L reaches N_T during the filling process, or if all pixel information in list L1 and list L2 has been filled, then end the filling and export list L.

[0208] In a possible implementation, the spatial neighboring pixel list is merged with the historical reference pixel candidate list to obtain a preselected reference pixel candidate list for the current coding and decoding block, including:

[0209] For the first pixel information, obtain the absolute value of the difference between the pixel value corresponding to the first pixel information and the pixel values corresponding to each of the existing pixel information in the preselected reference pixel candidate list; the first pixel information is any one of the spatial neighborhood pixel list and the historical reference pixel candidate list.

[0210] In response to the absolute value of the difference being greater than a second absolute value threshold, fill the first pixel information into the preselected reference pixel candidate list.

[0211] In an embodiment of the present application, when the codec fills a pixel information in list L1 or list L2 into list L during the process of constructing list L, it can perform duplicate checking on the pixel information through a duplicate checking strategy, that is, query whether there is pixel information in list L with a pixel value corresponding to the current pixel information being the same or similar.

[0212] Among them, the duplicate checking strategy during the process of filling a pixel information in list L1 or list L2 into list L is similar to the duplicate checking strategy when filling the first reference pixel into list L1, and will not be elaborated here.

[0213] In a possible implementation manner, when arranging the historical reference pixel candidate list based on the spatial neighborhood pixel list to obtain the preselected reference pixel candidate list of the current codec block, the codec may perform the following operations:

[0214] For the second pixel information, obtain the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel values corresponding to each of the pixel information in the spatial neighborhood pixel list; the second pixel information is any pixel information sequentially selected from the historical reference pixel candidate list.

[0215] In response to the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel value corresponding to the fourth pixel information being less than a third absolute value threshold, fill the second pixel information into the preselected reference pixel candidate list; the fourth pixel information is any one of the pixel information in the spatial neighborhood pixel list.

[0216] In an embodiment of the present application, the codec may screen and sort list L2 according to list L1 to obtain list L3, and list L may be composed of list L3. In an exemplary solution, the process of obtaining list L3 may be as follows:

[0217] Suppose the length of list L2 is N2. In the specified order (e.g., ascending / descending order), the pixel values of each pixel information in list L2 are compared with the pixel values of each pixel information in list L1 in sequence. If the absolute value of the difference between the pixel value of a pixel information in list L2 and the pixel value of any pixel information in list L1 is less than or equal to the third absolute value threshold, then fill this pixel information into list L3.

[0218] Among them, when comparing the pixel value of a pixel information in list L2 with the pixel values of each pixel information in list L1 in sequence, it can be to compare the Y, U, V component pixel values in the pixel values of the two pixel informations. If the absolute value of the difference between the component pixel values of each of the two pixel informations is less than or equal to the third absolute value threshold, then fill this pixel information in list L2 into list L3.

[0219] Or, when comparing the pixel value of a pixel information in list L2 with the pixel values of each pixel information in list L1 in sequence, it can be to compare the Y component pixel value in the pixel values of the two pixel informations. If the absolute value of the difference between the Y component pixel values of the two pixel informations is less than or equal to the third absolute value threshold, then fill this pixel information in list L2 into list L3.

[0220] In a possible implementation manner, when arranging the historical reference pixel candidate list based on this spatial neighborhood pixel list to obtain the preselected reference pixel candidate list of the current coding / decoding block, the codec performs the following operations:

[0221] For the fifth pixel information, obtain the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel values corresponding to each pixel information in this spatial neighborhood pixel list; the fifth pixel information is any pixel information sequentially selected from this historical reference pixel candidate list;

[0222] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being less than or equal to the fourth absolute value threshold, fill the fifth pixel information into the first candidate list; the sixth pixel information is any one in this spatial neighborhood pixel list;

[0223] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being greater than the fourth absolute value threshold, fill the fifth pixel information into the second candidate list;

[0224] Fill each piece of pixel information in the first candidate list and each piece of pixel information in the second candidate list into the preselected reference pixel candidate list in sequence; the positions of the pieces of pixel information in the first candidate list in the preselected reference pixel candidate list are before the positions of the pieces of pixel information in the second candidate list in the preselected reference pixel candidate list.

[0225] In the embodiments of the present application, the codec may screen and sort list L2 according to list L1 to obtain list L3 and list L4, and list L may be composed of list L3 and list L4. In an exemplary solution, the process of obtaining list L may be as follows:

[0226] Assume the length of L2 is N2. In a specified order (such as ascending / descending order), compare the pixel values of each piece of pixel information in list L2 with the pixel values of each piece of pixel information in list L1 in sequence. If the absolute value of the difference between the pixel value of a piece of pixel information in list L2 and the pixel value of any piece of pixel information in list L1 is less than or equal to the fourth absolute value threshold, then fill this piece of pixel information into list L3. If the absolute value of the difference between the pixel value of a piece of pixel information in list L2 and the pixel value of any piece of pixel information in list L1 is greater than the fourth absolute value threshold, then fill this piece of pixel information into list L4. Then form list L through list L3 and list L4. Among them, in list L, the pixel information belonging to list L3 is arranged in front of the pixel information belonging to list L4.

[0227] Among them, the above-mentioned preselected reference pixel candidate list is equivalent to the above-mentioned PrevHpvpCandList.

[0228] Step 804, based on the above-mentioned preselected reference pixel candidate list, perform encoding / decoding on the current coding / decoding block.

[0229] In the embodiments of the present application, after the codec constructs the above-mentioned preselected reference pixel candidate list, it can perform encoding or decoding on the current coding / decoding block based on this preselected reference pixel candidate list.

[0230] Among them, the method of decoding the current coding / decoding block may be as follows:

[0231] 1) There are the following ways to derive the reference pixel candidate list of the current coding / decoding block:

[0232] Way a: Without decoding the reuse_flag, use list L as the initial reference pixel candidate list;

[0233] Way b: Decode the reuse_flag and use a subset of list L to derive the initial reference pixel candidate list.

[0234] 2) Decode the length of the equal-value string in the current encoding / decoding block;

[0235] 3) Decode the reference pixels of the equal-value string in the current encoding / decoding block. The decoding process is as follows:

[0236] According to the decoded index idx, take the position of the reference pixel from the reference pixel candidate list, and then derive the pixel value from this position as the prediction value of the current string.

[0237] If idx is greater than the length of the reference pixel candidate list, directly decode the value of the reference pixel from the bitstream as the prediction value of the current string, and use this value to expand the reference pixel candidate list.

[0238] In summary, in the solution shown in the embodiments of the present application, before encoding / decoding the current encoding / decoding block, a preselected reference pixel candidate list of the current encoding / decoding block is constructed through the relevant information of the reconstructed pixels adjacent to the current encoding block, so that in the subsequent encoding / decoding process of the current encoding / decoding block, pixels in the adjacent spatial domain are introduced as references for equal-value string prediction encoding / decoding, thereby being able to expand the range of reference pixel selection in the equal-value string mode, and further improving the encoding / decoding efficiency of the extended equal-value string mode.

[0239] Please refer to Figure 11 , which shows the flowchart framework of the equal-value string prediction provided by an embodiment of the present application. As Figure 11 shown, before the codec encodes / decodes the current encoding / decoding block 1101, based on the reconstructed encoding / decoding blocks, a list L1 is constructed for the positions of the adjacent spatial domain pixels corresponding to the current encoding / decoding block 1101 (step S1), and then, in combination with list L1 and the preselected reference pixel candidate list constructed and updated during the encoding / decoding process of the previous encoding / decoding blocks, that is, list L2 (such as PrevHpvpCandList), the initial reference pixel candidate list 1102 of the current encoding / decoding block 1101 is derived (step S2), and then, based on the reference pixel candidate list 1102, the equal-value string in the current encoding / decoding block 1101 is encoded / decoded. During the encoding / decoding process, the reference pixel candidate list 1102 can be updated (step S3). After the encoding / decoding of the current encoding / decoding block 1101 is completed, list L2 is updated through the reference pixel candidate list 1102.

[0240] The following is an embodiment of the device of the present application, which can be used to execute the method embodiment of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the method embodiment of the present application.

[0241] Please refer to Figure 12, which shows a block diagram of a reference pixel candidate list construction device provided by an embodiment of the present application. This device has the functions of implementing the above method examples, and these functions can be implemented by corresponding software executed by hardware. This device can be the computer device introduced above, or can be set in the computer device. This device may include:

[0242] A pixel determination module 1201, configured to determine the spatial domain neighboring pixels of the current coding and decoding block in response to video coding and decoding in an equivalent string mode, where the spatial domain neighboring pixels are reconstructed pixels whose distance from the current coding and decoding block is within a specified distance range;

[0243] A neighboring pixel list construction module 1202, configured to construct a spatial domain neighboring pixel list of the current coding and decoding block based on the pixel information of the target reference pixels among the spatial domain neighboring pixels of the current coding and decoding block;

[0244] A reference pixel list construction module 1203, configured to construct a preselected reference pixel candidate list of the current coding and decoding block based on the spatial domain neighboring pixel list.

[0245] In a possible implementation manner, the target reference pixels are all the pixels among the spatial domain neighboring pixels of the current coding and decoding block;

[0246] Or, the target reference pixels are the pixels at specified positions among the spatial domain neighboring pixels of the current coding and decoding block;

[0247] Or, the target reference pixels are the pixels at positions determined based on the size of the current coding and decoding block among the spatial domain neighboring pixels of the current coding and decoding block.

[0248] In a possible implementation manner, the pixel information of the target reference pixels includes at least one of the position information of the target reference pixels and the pixel value information of the target reference pixels;

[0249] The position information includes the coordinates of the corresponding pixel in the image where the current image block is located;

[0250] Or, the position information includes the coordinates of the corresponding pixel in the maximum coding unit (LCU) row;

[0251] Or, the position information includes the coordinates of the corresponding pixel on the luminance image.

[0252] In a possible implementation manner, the neighboring pixel list construction module 1202 is configured to fill the pixel information of the target reference pixels into the spatial domain neighboring pixel list in a specified filling order.

[0253] In a possible implementation, the adjacent pixel list construction module 1202 is configured to,

[0254] After filling the pixel information of each of the target reference pixels located above the current coding and decoding block into the spatial domain adjacent pixel list, fill the pixel information of each of the target reference pixels located to the left of the current coding and decoding block into the spatial domain adjacent pixel list;

[0255] Or, after filling the pixel information of each of the target reference pixels located to the left of the current coding and decoding block into the spatial domain adjacent pixel list, fill the pixel information of each of the target reference pixels located above the current coding and decoding block into the spatial domain adjacent pixel list;

[0256] Or, alternately fill the pixel information of each of the target reference pixels located above the current coding and decoding block and the pixel information of each of the target reference pixels located to the left of the current coding and decoding block into the spatial domain adjacent pixel list.

[0257] In a possible implementation, the adjacent pixel list construction module 1202 is configured to,

[0258] For the first reference pixel, obtain the absolute value of the difference between the pixel value of the first reference pixel and the pixel values of each of the existing reference pixels in the spatial domain adjacent pixel list; the first reference pixel is any one of the target reference pixels;

[0259] In response to the absolute value of the difference being greater than the first absolute value threshold, fill the pixel information of the first reference pixel into the spatial domain adjacent pixel list.

[0260] In a possible implementation, the difference between the pixel value of the first reference pixel and the pixel values of each of the existing reference pixels in the spatial domain adjacent pixel list includes the differences in the luminance component and the chrominance component between the pixel value of the first reference pixel and the pixel values of each of the existing reference pixels in the spatial domain adjacent pixel list;

[0261] Or,

[0262] The difference between the pixel value of the first reference pixel and the pixel values of each of the existing reference pixels in the spatial domain adjacent pixel list includes the difference in the luminance component between the pixel value of the first reference pixel and the pixel values of each of the existing reference pixels in the spatial domain adjacent pixel list.

[0263] In a possible implementation, the adjacent pixel list construction module 1202 is further configured to,

[0264] When the first reference pixel is unavailable, use the pixel value of the nearest available reference pixel to the first reference pixel as the pixel value of the first reference pixel;

[0265] Alternatively, when the first reference pixel is unavailable, set the pixel value of the first reference pixel to a default value;

[0266] Alternatively, when the first reference pixel is unavailable, skip the first reference pixel.

[0267] In a possible implementation, the reference pixel list construction module 1203 includes: a first list acquisition unit, a second list acquisition unit, or a third list acquisition unit.

[0268] The first list acquisition unit is configured to obtain the spatial neighboring pixel list as the preselected reference pixel candidate list for the current coding and decoding block.

[0269] The second list acquisition unit is configured to merge the spatial neighboring pixel list with the historical reference pixel candidate list to obtain the preselected reference pixel candidate list for the current coding and decoding block; the historical reference pixel candidate list is constructed based on the reference pixel candidate list of the reconstructed coding and decoding blocks.

[0270] The third list acquisition unit is configured to screen the historical reference pixel candidate list based on the spatial neighboring pixel list to obtain the preselected reference pixel candidate list for the current coding and decoding block.

[0271] In a possible implementation, the second list acquisition unit is configured to,

[0272] After sequentially filling each pixel information in the spatial neighboring pixel list into the preselected reference pixel candidate list, sequentially fill each pixel information in the historical reference pixel candidate list into the preselected reference pixel candidate list until all pixel information in the historical reference pixel candidate list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches a quantity threshold;

[0273] Or,

[0274] After sequentially filling each pixel information in the historical reference pixel candidate list into the preselected reference pixel candidate list, sequentially fill each pixel information in the spatial neighboring pixel list into the preselected reference pixel candidate list until all pixel information in the spatial neighboring pixel list is filled, or until the number of pixel information in the preselected reference pixel candidate list reaches a quantity threshold.

[0275] In a possible implementation, the second list obtaining unit is configured to

[0276] For the first pixel information, obtain the absolute value of the difference between the pixel value corresponding to the first pixel information and the pixel values corresponding to the respective pixel information existing in the preselected reference pixel candidate list; the first pixel information is any one of the spatial domain adjacent pixel list and the historical reference pixel candidate list;

[0277] In response to the absolute value of the difference being greater than the second absolute value threshold, fill the first pixel information into the preselected reference pixel candidate list.

[0278] In a possible implementation, the third list obtaining unit is configured to

[0279] For the second pixel information, obtain the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel values corresponding to the respective pixel information in the spatial domain adjacent pixel list; the second pixel information is any pixel information sequentially selected from the historical reference pixel candidate list;

[0280] In response to the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel value corresponding to the fourth pixel information being less than the third absolute value threshold, fill the second pixel information into the preselected reference pixel candidate list; the fourth pixel information is any one of the spatial domain adjacent pixel list.

[0281] In a possible implementation, the third list obtaining unit is configured to

[0282] For the fifth pixel information, obtain the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel values corresponding to the respective pixel information in the spatial domain adjacent pixel list; the fifth pixel information is any pixel information sequentially selected from the historical reference pixel candidate list;

[0283] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being less than or equal to the fourth absolute value threshold, fill the fifth pixel information into the first candidate list; the sixth pixel information is any one of the spatial domain adjacent pixel list;

[0284] In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being greater than the fourth absolute value threshold, fill the fifth pixel information into the second candidate list;

[0285] Fill each piece of pixel information in the first candidate list and each piece of pixel information in the second candidate list into the preselected reference pixel candidate list in sequence; the positions of each piece of pixel information in the first candidate list in the preselected reference pixel candidate list are before the positions of each piece of pixel information in the second candidate list in the preselected reference pixel candidate list.

[0286] In summary, in the solution shown in the embodiments of the present application, before encoding / decoding the current coding / decoding block, a preselected reference pixel candidate list of the current coding / decoding block is constructed through the relevant information of the reconstructed pixels adjacent to the current coding block, so that in the subsequent encoding / decoding process of the current coding / decoding block, pixels in the adjacent spatial domain are introduced as references for equal-value string prediction encoding / decoding, thereby being able to expand the reference pixel selection range in the equal-value string mode, and further improving the encoding / decoding efficiency of the extended equal-value string mode.

[0287] Please refer to Figure 13 , which shows the structural block diagram of a computer device provided by an embodiment of the present application. This computer device can be the encoding end device introduced above, or the decoding end device introduced above. This computer device 130 may include: a processor 131, a memory 132, a communication interface 133, an encoder / decoder 134, and a bus 135.

[0288] The processor 131 includes one or more processing cores. The processor 131 executes various functional applications and information processing by running software programs and modules.

[0289] The memory 132 can be used to store computer programs, and the processor 131 is used to execute the computer programs to implement the above-mentioned reference pixel candidate list construction method.

[0290] The communication interface 133 can be used to communicate with other devices, such as receiving and transmitting audio and video data.

[0291] The encoder / decoder 134 can be used to implement encoding and decoding functions, such as encoding and decoding audio and video data.

[0292] The memory 132 is connected to the processor 131 through the bus 135.

[0293] In addition, the memory 132 can be implemented by any type of volatile or non-volatile storage device or a combination thereof. Volatile or non-volatile storage devices include, but are not limited to: magnetic or optical disks, EEPROM (Electrically Erasable Programmable Read-Only Memory), EPROM (Erasable Programmable Read-Only Memory), SRAM (Static Random-Access Memory), ROM (Read-Only Memory), magnetic memory, flash memory, PROM (Programmable read-only memory).

[0294] Those skilled in the art can understand that Figure 13 the structure shown in does not constitute a limitation on the computer device 130, and it may include more or fewer components than shown in the figure, or combine certain components, or adopt a different component arrangement.

[0295] In an exemplary embodiment, a computer-readable storage medium is also provided. The computer-readable storage medium stores at least one instruction, at least one segment of program, a code set or an instruction set, and when the at least one instruction, the at least one segment of program, the code set or the instruction set is executed by a processor, the above-mentioned reference pixel candidate list construction method is implemented.

[0296] In an exemplary embodiment, a computer program product or a computer program is also provided. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the above-mentioned reference pixel candidate list construction method.

[0297] It should be understood that the term "plurality" mentioned herein refers to two or more. "And / or" describes the association relationship of associated objects, indicating that there can be three relationships. For example, A and / or B can represent: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally represents an "or" relationship between the associated objects before and after.

[0298] The above are only exemplary embodiments of the present application, and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the protection scope of the present application.

Claims

1. A method for constructing a reference pixel candidate list, characterized in that, The method includes: In response to video encoding and decoding of a current coding block in an equivalent string mode, determining spatial neighboring pixels of the current coding block, where the spatial neighboring pixels are reconstructed pixels whose distance from the current coding block is within a specified distance range; in the equivalent string mode, pixels in a pixel string to be encoded and decoded in the current coding block have the same prediction value; For a first reference pixel, obtaining the absolute value of the difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list of the current coding block; the first reference pixel is any one of the target reference pixels among the spatial neighboring pixels of the current coding block; In response to the absolute value of the difference being greater than a first absolute value threshold, filling the pixel information of the first reference pixel into the spatial neighboring pixel list; Based on the spatial neighboring pixel list, constructing a preselected reference pixel candidate list for the current coding block.

2. The method according to claim 1, wherein: The target reference pixels are all pixels among the spatial neighboring pixels of the current coding block; Or, the target reference pixels are pixels at specified positions among the spatial neighboring pixels of the current coding block; Or, the target reference pixels are pixels at positions determined based on the size of the current coding block among the spatial neighboring pixels of the current coding block.

3. The method according to claim 1, wherein The pixel information of the target reference pixel includes at least one of the position information of the target reference pixel and the pixel value information of the target reference pixel; The position information includes the coordinates of the corresponding pixel in the image where the current coding block is located; Or, the position information includes the coordinates of the corresponding pixel in the maximum coding unit (LCU) row; Or, the position information includes the coordinates of the corresponding pixel on the luminance image.

4. The method according to claim 1, wherein: The difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list includes the differences in the luminance component and the chrominance component between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list; Or, The difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list includes the difference in the luminance component between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighboring pixel list.

5. The method according to claim 1, wherein The method further includes: When the first reference pixel is unavailable, using the pixel value of the nearest available reference pixel of the first reference pixel as the pixel value of the first reference pixel; Or, when the first reference pixel is unavailable, setting the pixel value of the first reference pixel to a default value; Or, when the first reference pixel is unavailable, skipping the first reference pixel.

6. The method according to claim 1, characterized in that The constructing a preselected reference pixel candidate list for the current coding block based on the spatial neighboring pixel list includes: Obtaining the spatial neighboring pixel list as the preselected reference pixel candidate list for the current coding block; Or, Merge the list of neighboring pixels in the spatial domain with the list of historical reference pixel candidates to obtain a preselected list of reference pixel candidates for the current coding / decoding block; the list of historical reference pixel candidates is constructed based on the list of reference pixel candidates of the reconstructed coding / decoding blocks; Or, Arrange the list of historical reference pixel candidates based on the list of neighboring pixels in the spatial domain to obtain a preselected list of reference pixel candidates for the current coding / decoding block.

7. The method according to claim 6, wherein The step of merging the list of neighboring pixels in the spatial domain with the list of historical reference pixel candidates to obtain a preselected list of reference pixel candidates for the current coding / decoding block includes: After sequentially filling each pixel information in the list of neighboring pixels in the spatial domain into the preselected list of reference pixel candidates, sequentially fill each pixel information in the list of historical reference pixel candidates into the preselected list of reference pixel candidates until all pixel information in the list of historical reference pixel candidates is filled, or until the number of pixel information in the preselected list of reference pixel candidates reaches a quantity threshold; Or, After sequentially filling each pixel information in the list of historical reference pixel candidates into the preselected list of reference pixel candidates, sequentially fill each pixel information in the list of neighboring pixels in the spatial domain into the preselected list of reference pixel candidates until all pixel information in the list of neighboring pixels in the spatial domain is filled, or until the number of pixel information in the preselected list of reference pixel candidates reaches a quantity threshold.

8. The method according to claim 6, wherein The step of merging the list of neighboring pixels in the spatial domain with the list of historical reference pixel candidates to obtain a preselected list of reference pixel candidates for the current coding / decoding block includes: For the first pixel information, obtain the absolute value of the difference between the pixel value corresponding to the first pixel information and the pixel values corresponding to each existing pixel information in the preselected list of reference pixel candidates; the first pixel information is any one of the list of neighboring pixels in the spatial domain and the list of historical reference pixel candidates; In response to the absolute value of the difference being greater than a second absolute value threshold, fill the first pixel information into the preselected list of reference pixel candidates.

9. The method according to claim 6, wherein The step of arranging the list of historical reference pixel candidates based on the list of neighboring pixels in the spatial domain to obtain a preselected list of reference pixel candidates for the current coding / decoding block includes: For the second pixel information, obtain the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel values corresponding to each pixel information in the list of neighboring pixels in the spatial domain; the second pixel information is any pixel information sequentially selected from the list of historical reference pixel candidates; In response to the absolute value of the difference between the pixel value corresponding to the second pixel information and the pixel value corresponding to the fourth pixel information being less than a third absolute value threshold, fill the second pixel information into the preselected list of reference pixel candidates; the fourth pixel information is any one of the list of neighboring pixels in the spatial domain.

10. The method according to claim 6, characterized in that The step of arranging the list of historical reference pixel candidates based on the list of neighboring pixels in the spatial domain to obtain a preselected list of reference pixel candidates for the current coding / decoding block includes: For the fifth pixel information, obtain the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel values corresponding to each pixel information in the spatial neighborhood pixel list; the fifth pixel information is any pixel information sequentially selected from the historical reference pixel candidate list. In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being less than or equal to the fourth absolute value threshold, fill the fifth pixel information into the first candidate list; the sixth pixel information is any one in the spatial neighborhood pixel list. In response to the absolute value of the difference between the pixel value corresponding to the fifth pixel information and the pixel value corresponding to the sixth pixel information being greater than the fourth absolute value threshold, fill the fifth pixel information into the second candidate list. Fill each pixel information in the first candidate list and each pixel information in the second candidate list into the preselected reference pixel candidate list in sequence; the positions of the pixel information in the first candidate list in the preselected reference pixel candidate list are before the positions of the pixel information in the second candidate list in the preselected reference pixel candidate list.

11. A reference pixel candidate list building apparatus, characterized in that The device includes: A pixel determination module, configured to, in response to performing video encoding and decoding on a current coding and decoding block in an equivalent string mode, determine the spatial neighborhood pixels of the current coding and decoding block, where the spatial neighborhood pixels are reconstructed pixels whose distances from the current coding and decoding block are within a specified distance range; in the equivalent string mode, the pixels in the pixel string being coded and decoded in the current coding and decoding block have the same predicted value. A neighborhood pixel list construction module, configured to, for a first reference pixel, obtain the absolute value of the difference between the pixel value of the first reference pixel and the pixel values of each existing reference pixel in the spatial neighborhood pixel list of the current coding and decoding block; the first reference pixel is any one of the target reference pixels in the spatial neighborhood pixels of the current coding and decoding block; in response to the absolute value of the difference being greater than the first absolute value threshold, fill the pixel information of the first reference pixel into the spatial neighborhood pixel list. A reference pixel list construction module, configured to construct a preselected reference pixel candidate list of the current coding and decoding block based on the spatial neighborhood pixel list.

12. A computer device, characterized in that, The computer device includes a processor and a memory, and at least one instruction, at least one program, a code set, or an instruction set is stored in the memory, and the at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by the processor to implement the reference pixel candidate list construction method according to any one of claims 1 to 10.

13. A computer-readable storage medium, characterized in that, At least one instruction, at least one program, a code set, or an instruction set is stored in the computer-readable storage medium, and the at least one instruction, the at least one program, the code set, or the instruction set is loaded and executed by the processor of the computer device to implement the reference pixel candidate list construction method according to any one of claims 1 to 10.

14. A computer program product, characterized in that, The computer program product includes computer instructions which are loaded and executed by a processor of a computer device to implement the method for constructing a reference pixel candidate list according to any one of claims 1 to 10.

Citation Information

Patent Citations

  • Image compression method combining block matching and string matching

    CN110913222A