Intra-frame prediction method, encoder, decoder and electronic equipment

By obtaining the feature vectors of the target block and the reference block in the video frame, generating weights using Hamming distances, and selecting the best chromaticity prediction block, the problem of time-consuming convolutional cross-component prediction is solved, and more efficient intra-prediction is achieved.

CN120457679AActive Publication Date: 2025-08-08SHENZHEN TCL NEW-TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
CN202380083733.3
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-04-28
Publication Date
2025-08-08
Estimated Expiration
2043-04-28

AI Technical Summary

Technical Problem

Existing convolutional cross-component prediction methods are time consuming to calculate mode parameters and are not effective when image blocks exhibit poor linear correlation.

Method used

By obtaining the target block and reference block in the video frame, calculating the feature vectors of each pixel and binarizing them, using the Hamming distance to generate weights, selecting the best chromaticity prediction block, reducing the calculation complexity and time consumption.

Benefits of technology

Intra prediction based on pixel discrete correlation is realized, which reduces the computational complexity and power consumption and improves the prediction efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120457679A_ABST
    Figure CN120457679A_ABST
Patent Text Reader

Abstract

The invention discloses an intra-frame prediction method based on pixel discrete correlation. The intra-frame prediction method comprises the following steps of: binarizing pixel features in a reference block subset and pixel features in a current block and converting the pixel features into binary feature vectors for difference comparison; the difference is represented by a Hamming distance and converted into a weight for predicting pixel chroma values of a subset of reference blocks to a pixel chroma value of the current block. The weights implicitly achieve discrete correlation of the pixels. Accordingly, prediction blocks for a plurality of current blocks are generated based on different reference block sets. And selecting the prediction block with the minimum chrominance component difference with the current block as a final prediction block for intra-frame prediction.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of image processing, and more particularly, to an intra-frame prediction method, an encoder, a decoder, and an electronic device. Background Art

[0002] In the field of image and video compression, an image typically consists of three color components: the luminance component Y and two chrominance components, Cb and Cr. Each component is represented as a data matrix. The data matrix for each component is decomposed into blocks associated with specific encoding parameters. Any block of a component can be a square or rectangular with sides that are powers of 2, spatially corresponding to a unique block in the other two components. The encoder encodes the luminance component first, followed by the chrominance components. Spatially, the encoding order starts at the top left corner, proceeds from left to right, and then from top to bottom.

[0003] In video coding standards such as Versatile Video Coding (VVC), intra prediction refers to a method of predicting a current block by using previously coded blocks in the same image. When intra prediction is performed on the current block, a set of candidate prediction modes is determined for the current block, and intra prediction is performed on the current block based on multiple candidate prediction modes in the set. The set of candidate prediction modes can include a combination of the best prediction mode (i.e., the prediction mode encoded in the bitstream), derivative modes representing the best prediction direction based on previously reconstructed blocks, and some intra prediction modes. Technical issues

[0004] In the field of cross-component prediction, a method called convolutional cross-component prediction exists. Current convolutional cross-component prediction models require solving a system of linear equations to calculate model parameters, which is very time-consuming. Convolutional cross-component prediction is based on linear regression. However, in some cases, image patches exhibit poor linear correlation, and existing cross-component prediction methods perform poorly in these situations.

[0005] Therefore, an intra prediction method is desired to enhance the prediction technology. Summary of the Invention

[0006] The present disclosure aims to provide an intra-frame prediction method, an encoder, a decoder, and an electronic device.

[0007] In a first aspect, an embodiment of the present invention provides an intra-frame prediction method that can be performed in an electronic device, including: Obtain a target block to be encoded and multiple reference blocks in a video frame; selecting a subset from the plurality of reference blocks as a reference region; Calculating a first eigenvector of each reference pixel in each reference block in each reference region to obtain a first eigenvector of the reference block, and calculating a second eigenvector of each target pixel in the target block to obtain a second eigenvector of the target block; Binarizing the first eigenvector and the second eigenvector based on a reference value of each pixel in all reference areas; Derived the Hamming distance between the binarized first eigenvector of each reference pixel and the binarized second eigenvector of each target pixel; The Hamming distance of the reference pixels is used to generate the weight of each reference pixel in each reference block; Performing chroma prediction on the target block based on the weight of each reference region to obtain a chroma prediction block corresponding to each reference region; and Select the best candidate from all chroma prediction blocks.

[0008] In a second aspect, an embodiment of the present invention provides an electronic device serving as an image encoder, comprising a processor for calling and running a computer program stored in a memory, so that the device in which the chip is installed can perform the disclosed method and any combination thereof.

[0009] In a third aspect, an embodiment of the present invention provides an electronic device serving as an image decoder, comprising a processor for calling and running a computer program stored in a memory, so that the device in which the chip is installed can perform the disclosed method and any combination thereof.

[0010] In a fifth aspect, an embodiment of the present invention provides an image encoder chip for executing the disclosed method and any combination thereof.

[0011] In a sixth aspect, an embodiment of the present invention provides an image decoder chip for executing the disclosed method and any combination thereof.

[0012] The disclosed method can be programmed as computer-executable instructions stored in a non-transitory computer-readable medium. When the non-transitory computer-readable medium is loaded into a computer, it instructs the processor of the computer to execute the disclosed method.

[0013] The non-volatile computer readable medium may include at least one of the following group: a hard disk, a CD-ROM, an optical storage device, a magnetic storage device, a read-only memory, a programmable read-only memory, an erasable programmable read-only memory, an EPROM, an electrically erasable programmable read-only memory, and a flash memory.

[0014] The disclosed method can be programmed as a computer program product to enable a computer to execute the method.

[0015] The disclosed method can be programmed as a computer program to enable a computer to execute the method. Beneficial effects

[0016] The disclosed embodiment provides an intra-frame prediction method based on discrete pixel correlation. The method realizes cross-component prediction through the discrete correlation of pixels. The features of the pixels in the reference block subset (i.e., the reference area) and the features of the pixels in the current block are binarized and converted into binary feature vectors, and then a difference comparison is performed. The binary feature vector reduces computational complexity, time consumption, and power consumption. The difference is represented by the Hamming distance and converted into weights for intra-frame prediction of the pixel chrominance values of the reference block subset to the pixel chrominance values of the current block. These weights implicitly reflect the discrete correlation of pixels. Therefore, multiple prediction blocks of the current block are generated based on different reference block sets. A prediction block with the smallest difference in chrominance component with the current block is selected as the final prediction block for intra-frame prediction. The scheme for selecting a set of reference blocks to generate the final prediction block is encoded into the bitstream carrying the video frame. The weights and residual blocks are also encoded into the bitstream. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the embodiments of the present disclosure or related technologies, the following diagrams briefly introduce the embodiments. Obviously, these diagrams are only some embodiments of the present disclosure, and people with ordinary skills in this field can obtain other diagrams based on these diagrams without paying any additional labor.

[0018] Figure 1 A communication system including an electronic device for performing an intra-frame prediction method is schematically shown.

[0019] Figure 2 An electronic device for performing an intra prediction method is schematically shown.

[0020] Figure 3 The workflow of the image and video intra-frame prediction method at the encoding or decoding end is schematically shown.

[0021] Figure 4 The workflow of the decoding end is schematically shown.

[0022] Figure 5 The current block and the reference block serving as the reference area of the current block are schematically shown.

[0023] Figure 6 A video encoder is schematically shown.

[0024] Figure 7 A video decoder is shown schematically.

[0025] Figure 8A color image is schematically shown, a block of the color image is processed as a current block, the color image includes three color components, and adjacent blocks of the current block in the color image.

[0026] Figure 9 The luminance and chrominance components of the current block and its reference blocks are schematically shown.

[0027] Figure 10 The workflow of the intra-frame prediction method applicable to images or videos is schematically shown.

[0028] Figure 11 A current block and different reference block regions used as reference regions are schematically shown.

[0029] Figure 12 The pixel processed as the current pixel and its neighboring pixels are schematically shown, and the spatial coordinates of the neighboring pixels are defined based on the central current pixel.

[0030] Figure 13 Schematic illustration of the binarization of feature vectors.

[0031] Figure 14 Schematic illustration of the calculation of the Hamming distance between two binary eigenvectors.

[0032] Figure 15 A communication system for performing an intra-frame prediction method is schematically illustrated. DETAILED DESCRIPTION

[0033] The embodiments of the present disclosure will be described in detail with reference to the accompanying drawings to illustrate the technical issues, structural features, implementation objectives and effects. Specifically, the terms in the embodiments of the present disclosure are only used to describe specific embodiments and do not limit the present disclosure.

[0034] The current convolution cross-component prediction model requires solving a system of linear equations when calculating the model parameters, which is very time-consuming.

[0035] Furthermore, using continuous functions for cross-component prediction may not be reasonable in all cases. Traditional intra-frame prediction methods are not suitable for blocks whose colors are relatively discrete rather than gradient. Constructing discrete patterns for intra-frame prediction sometimes has advantages over continuous functions.

[0036] Therefore, the present invention proposes a method to collect features of luminance component values and corresponding chrominance component values from a reference area, establish a mapping relationship from luminance to chrominance, and obtain chrominance through the mapping relationship using the luminance component features of the current block.

[0037] Reference Figure 1The system including electronic devices 10a and 10b, a base station (BS) 20a, and a network entity device 30 performs the disclosed method according to the embodiments of the present disclosure. The electronic devices 10a and 10b can be computers, laptops, tablets, mobile phones, AR glasses, or other AR processing devices. Figure 1 For example only and not limitation, the system may include more electronic devices, base stations and CN entities. The connections between the devices and their components are represented in the figure by lines and arrows. Electronic device 10a may include a processor 11a, a memory 12a, a transceiver 13a, a camera 14a, a depth camera 15a and an inertial measurement unit (IMU) 16a. Electronic device 10b may include a processor 11b, a memory 12b, a transceiver 13b and a camera 14b. In some embodiments, each electronic device may include a depth camera that captures depth images. In some embodiments, each electronic device may include an inertial measurement unit (IMU) that measures and generates an external odometer of the device. The odometer of a device is an estimate of the change in the position of the device over time using data from motion sensors.

[0038] Each camera 14a and 14b captures and generates a color space image from a scene. A color space image camera, such as camera 14a or 14b, is configured to capture a series of input frames, wherein each input frame comprises a color space image.

[0039] Base station 20a may include a processor 21a, a memory 22a, and a transceiver 23a. Network entity device 30 may include a processor 31, a memory 32, and a transceiver 33. Each processor 11a, 11b, 21a, and 31 may be configured to implement the functions, procedures, and / or methods described herein. Each layer of a wireless interface protocol may be implemented in processors 11a, 11b, 21a, and 31. Memories 12a, 12b, 22a, and 32 may each store various programs and information to operate the connected processors. Transceivers 13a, 13b, 23a, and 33 are connected to the connected processors and are capable of transmitting and / or receiving wireless or wired signals. Base station 20a may be an access point, eNB, gNB, or other type of wireless node and may configure wireless resources for electronic devices 10a and 10b.

[0040] Each processor 11a, 11b, 21a and 31 may include an application-specific integrated circuit (ASIC), other chipsets, logic circuits and / or data processing devices. Each memory 12a, 12b, 22a and 32 may include a read-only memory (ROM), a random access memory (RAM), flash memory, a memory card, a storage medium and / or other storage devices. Each transceiver 13a, 13b, 23a and 33 may include a baseband circuit and a radio frequency (RF) circuit to process radio frequency signals. When the embodiment is implemented in software form, the technology described herein can be implemented to perform the above functions through programs, instructions, modules, processes, functions, entities, etc. The modules can be stored in the memory and executed by the processor. The memory can be implemented within the processor or outside the processor and can be communicatively coupled to the processor in various known ways.

[0041] The electronic device examples described herein may include the electronic device 10a or the electronic device 10b. The electronic device 10a may communicate with the electronic device 10b via a direct connection or via the base station 20a and / or the network device entity 30.

[0042] refer to Figure 2 The electronic device 10a can communicate with the electronic device 10b via a wired or wireless communication connection. One of the electronic device 10a or the electronic device 10b can function as an image encoder, and the other can function as an image decoder.

[0043] refer to Figure 3 and Figure 4 , which is an embodiment of the intra-frame prediction method performed by electronic devices 10a and 10b.

[0044] The image encoder can be implemented as an intra-frame prediction unit, chip, electronic device, or video encoding system. The image decoder can be implemented as an intra-frame prediction unit, chip, electronic device, or video decoding system. The intra-frame prediction unit in the image encoder and / or image decoder performs an intra-frame prediction method.

[0045] The intra prediction unit obtains a target block to be encoded and multiple reference blocks in a video frame, and selects a subset from the multiple reference blocks as a reference area (S301).

[0046] The intra prediction unit calculates a first eigenvector for each reference pixel in each reference block within the reference region, thereby obtaining a plurality of first eigenvectors for the reference block, and calculates a second eigenvector for each target pixel in the target block, thereby obtaining a plurality of second eigenvectors for the target block (S302). The first eigenvector and the second eigenvector may include a luminance component value, a gradient value of the luminance component, and a spatial coordinate of the reference pixel or the target pixel (whichever is applicable), and include a set of luminance component values of neighboring pixels surrounding the reference pixel or the target pixel.

[0047] The intra prediction unit binarizes the plurality of first eigenvectors and the plurality of second eigenvectors according to reference values of all pixels in each reference region ( S303 ).

[0048] The intra-frame prediction unit calculates the Hamming distance between the binarized first eigenvector of each reference pixel and the binarized second eigenvector of each target pixel (S304). The process of calculating the Hamming distance includes calculating the Hamming distance between all reference pixels in the reference area and the target pixel for each target pixel in the target block. In one embodiment, the Hamming distance between the binarized first eigenvector and the binarized second eigenvector is obtained by performing an XOR operation on the binarized first eigenvector and the binarized second eigenvector of each reference pixel, and then counting the number of binary 1s in the XOR operation result. The number of binary 1s in the result is the Hamming distance between the first eigenvector and the second eigenvector.

[0049] The intra prediction unit generates a weight of each reference pixel in each reference block using the Hamming distance of the reference pixels ( S305 ).

[0050] By generating weights of reference pixels in each reference block using the Hamming distance from the reference pixel to the target pixel to be predicted in the target block, weights of multiple reference pixels in the reference area relative to the target pixel can be generated.

[0051] By generating weights of the multiple reference pixels in the reference area relative to each target pixel in the target block, weights of the multiple reference pixels in the reference area relative to all target pixels in the target block can be generated.

[0052] The generated weights are applied to generate predicted chrominance values for multiple target pixels of the target block based on the chrominance values of the reference pixels of the reference area. The intra prediction unit can generate the weights of each reference pixel in each reference block using a monotonically non-increasing function based on the Hamming distance.

[0053] The intra-frame prediction unit performs chroma prediction on the target block based on each reference region and using the weight of the reference region relative to the target block to obtain a chroma prediction block corresponding to each reference region. The chroma prediction based on the reference region includes: based on the generated weight of the reference region, using the weighted average of the chroma values of multiple reference pixels in the reference region to generate a predicted chroma value for each target pixel in the target block, thereby forming a prediction block having the predicted chroma values of all target pixels in the target block (S306). The weight of the reference region is the weight of all reference pixels in the reference region.

[0054] The intra prediction unit selects the best candidate block from all chroma prediction blocks (S308). The best candidate block is the best chroma prediction block. The intra prediction unit performs chroma prediction on the target block based on different subsets (reference areas) of the multiple reference blocks to form different prediction blocks of the target block based on different subsets of the multiple reference blocks.

[0055] The intra-frame prediction unit selects one prediction block from among the different prediction blocks of the target block as a final prediction block for the target block. The intra-frame prediction unit may select one prediction block from among the different prediction blocks of the target block as the final prediction block based on the difference between each prediction block and the target block. When the prediction block with the smallest difference value is selected, the corresponding selection scheme for determining the subset of the plurality of reference blocks is encoded in the bitstream carrying the video frame. The weights of the reference pixels in the subset of reference blocks used to generate the final prediction block may or may not be encoded in the bitstream carrying the video frame.

[0056] The intra prediction unit outputs the final predicted block of the target block to the next stage of the encoder or decoder, depending on the application.

[0057] The image encoder performs an intra-frame prediction method in the intra-frame prediction stage and transmits the video frame. The image decoder receives the video frame and performs an intra-frame prediction method in the intra-frame prediction stage.

[0058] The image decoder obtains a target block to be decoded and multiple reference blocks in a video frame ( S401 ).

[0059] The image decoder uses its internal intra-frame prediction unit to reproduce the weights of multiple reference pixels in multiple reference blocks, where the weights include the weight of each reference pixel in each reference block, and the weight of each reference pixel in each reference block is generated based on the Hamming distance between the reference pixel and the target pixel to be predicted in the target block. These weights can be used to generate the predicted chrominance value of the target pixel in the target block from the chrominance values of the reference pixels in the multiple reference blocks (S402).

[0060] The image decoder performs chrominance prediction on the target block based on each reference area in the multiple reference blocks, wherein the chrominance prediction based on each reference area includes: based on the weights of the multiple reference pixels in the generated reference area, using the weighted average of the chrominance values of the multiple reference pixels in the reference area to generate a predicted chrominance value for each target pixel in the target block to form a predicted block with predicted chrominance values of all target pixels (S403).

[0061] SUMMARY OF THE INVENTION An object of the present invention is to solve the above-mentioned problems.

[0062] To this end, the subject matter of the present invention is related to an intra prediction method for dividing an image into a plurality of color components and a plurality of blocks.

[0063] The method of the present invention implements the following steps for intra-frame prediction of uncoded chrominance components of a current block. The current block is a block in a video frame that has not yet been coded. In the description, the current block is referred to as a target block, and pixels in the target block are referred to as target pixels. Pixels in a reference block are referred to as reference pixels.

[0064] The first step is to sample the luminance component of the reconstructed data of the coding block (ie, the reference block or the reference area) and to sample the luminance component of the current block.

[0065] The second step is to calculate the predicted value of the chrominance component of the current block that has not yet been encoded from the sample data.

[0066] In the present invention, obtaining the predicted value of the chrominance component of the current block that has not been encoded includes a sampling stage and a prediction stage.

[0067] The first step is the sampling phase, which includes the following steps (1) and (2): (1) For each pixel in the reference region of the chrominance component, the pixel is located at a position in the reference region, and the vector element of its eigenvector contains the following eigenvalues: (a) Brightness value of pixels at the same position, (b) the brightness value of one or more nearby locations, (c) Brightness gradient value of the pixel at the same position, (d) the coordinates of that location, and (e) The square of the brightness value of the pixel at the same position and / or the square of the brightness value of the adjacent pixels at nearby positions. If the downsampling setting is not used and the brightness component is used, the eigenvalues in (a) are not available, the eigenvalues in (c) will be the brightness values of nearby positions, and the eigenvalues in (e) will only include nearby positions. (2) For each vector element, a reference value is obtained, which can be the average value of the vector element values of all pixels in the reference area of the chrominance component, or a part of the maximum value of the vector element values of all pixels in the area. Each vector element of each pixel in the reference area is binarized based on the reference value. Vector elements greater than the reference value are binarized to Boolean value 1, and vector elements less than the reference value are binarized to Boolean value 0. The feature vector of each pixel in the reference area is binarized into a binary vector with a length equal to the number of vector element types. This binary vector is hereinafter referred to as a binarized feature vector or a binary feature vector.

[0068] The second step is the prediction phase, which includes the following steps (3) and (4) for the chrominance component of each pixel in the target block: (3) For each pixel in the target block of the chrominance component, the pixel is located in the reference region, and the vector elements of its feature vector contain feature values based on the same scheme as in (1). Each vector element of each pixel in the target block is binarized according to the reference value. Vector elements greater than the reference value are binarized to Boolean values of 1, and vector elements less than the reference value are binarized to Boolean values of 0. The feature vector of each pixel is binarized into a binary vector with a length equal to the number of vector element types. (4) For each eigenvector in (2) and each eigenvector in (3), calculate the Hamming distance between the eigenvector in (2) and the eigenvector in (3), thereby obtaining the Hamming distance of the eigenvector in (2). According to a predefined monotone non-increasing function, convert the Hamming distance into the weight of the pixels in the reference area. Perform chroma prediction on the target block based on the reference areas in the multiple reference blocks. The chroma prediction based on the reference area includes: based on the weight of the generated reference area, using the weighted average of the chroma values of the multiple reference pixels in the reference area to generate a predicted chroma value for each target pixel in the target block, thereby forming a predicted block having the predicted chroma values of all target pixels in the target block.

[0069] The set of predicted chrominance values for all pixels in the target block is called a prediction block. The intra prediction unit can use this scheme to determine a subset of reference blocks from a plurality of reference blocks. The above steps (1) to (4) are performed for each subset of reference blocks to obtain a prediction block for the target block. Therefore, each prediction block is associated with a subset of reference blocks from which the prediction block is obtained. For each prediction block, the sum of the absolute differences between the target block and the prediction block is calculated. Among all the prediction blocks, the prediction block with the smallest sum of absolute differences is selected as the selected prediction block.

[0070] After obtaining the predicted chrominance values in the selected prediction block, the remaining encoding of the current block may follow current image and video coding standards (eg, MPEG, H.266 / VVC, etc.).

[0071] In order to help understand the technical solutions proposed in the embodiments of the present application, four basic concepts are first briefly introduced: predictive coding, intra-frame prediction, color image data combination and cross-component intra-frame prediction.

[0072] In video coding, the main function of predictive coding is to use the reconstructed image area (at least a part of which is used as a reference area) to construct the predicted value of the current block, and to achieve image data compression and reduce the amount of transmitted data by encoding and transmitting only the difference between the original value and the predicted value of the current block.

[0073] The main function of intra-frame prediction is to construct the prediction value of the current block using the current block and its adjacent upper pixel units, left pixel units and upper left pixel units. Figure 5As shown, the reconstructed neighboring pixels are used to generate a prediction value for each pixel in the current block 101. The neighboring pixels include pixels in the upper row 102, pixels in the left column 103, and pixels in the upper left block 104 adjacent to the current block.

[0074] Therefore, when encoding chrominance components, after the luminance component of the same image is encoded and the reconstructed data is ready, it can be used as a reference sample for encoding the chrominance components. When encoding the chrominance components of the current block, the chrominance component reconstruction data of adjacent blocks can be used to predict the chrominance component values of the current block. Furthermore, the luminance component reconstruction data of adjacent blocks can also be used to predict the chrominance component values of the current block. In video compression algorithms, the correlation between the luminance components of adjacent blocks can be used to predict the chrominance components of the current block. This technique is called chrominance prediction and is often referred to as cross-component prediction.

[0075] The embodiment of the present application provides a video coding system. Figure 6 As shown, the video coding system 210 is composed of multiple modules, including a conversion and quantization unit 2101, an intra-frame estimation unit 2102, an intra-frame prediction unit 2103, a motion compensation unit 2104, a motion estimation unit 2105, an inverse transform and inverse quantization unit 2106, a filtering control analysis unit 2107, a filtering unit 2108, a coding unit 2109, a coded image buffer unit 2110 and a subtractor 2112.

[0076] The original video signal consists of video frames. Each video frame can be divided into video reconstruction blocks by coding tree units. For each video frame, the subtractor 2112 generates residual pixel information of the residual frame by subtracting the prediction block output by the intra-frame prediction unit 2103 or the motion compensation unit 2104 from the video frame. The residual pixel information obtained after intra-frame prediction or inter-frame prediction (motion compensation) is transformed by the transform and quantization unit 2101. The transformation includes converting the residual pixel information from the pixel domain to the transform domain, and the obtained transform coefficients are quantized to further reduce the bit rate. The intra-frame estimation unit 2102 performs intra-frame estimation, and the intra-frame prediction unit 2103 performs intra-frame prediction on the video reconstruction block. The motion estimation process performed by the motion estimation unit 2105 is to generate a motion vector that can estimate the motion of the video reconstruction block, and then the motion compensation unit 2104 performs motion compensation based on the determined motion vector. After determining the intra-frame prediction mode, the intra-frame prediction unit 2103 provides the selected intra-frame prediction data to the encoding unit 2109. The motion estimation unit 2105 also sends the calculated motion vector data to the encoding unit 2109. The inverse transform and inverse quantization unit 2106 reconstructs the video reconstruction block and reconstructs the residual block in the pixel domain. Under the control of the filter analysis unit 2107, the filtering unit 2108 removes blocking artifacts from the reconstructed residual block. The encoding unit 2109 adds the reconstructed residual block to the prediction block in the coded image buffer 2110 to generate a reconstructed block. The encoding unit 2109 encodes various coding parameters and quantized transform coefficients into a bitstream and outputs the bitstream of the video signal. The coded image buffer 2110 stores the reconstructed block as a reference block for intra-frame prediction. As video encoding progresses, new reconstructed blocks are continuously generated and stored in the coded image buffer 2110.

[0077] The embodiment of the present application provides a video decoding system. Figure 7 As shown, the video decoding system 220 is composed of multiple modules, including a decoding unit 2201, an inverse transform and inverse quantization unit 2202, an intra-frame prediction unit 2203, a motion compensation unit 2204, a filtering unit 2205 and a decoded image buffer unit 2206.

[0078] The video encoding system 210 encodes the input signal of a video frame to obtain an output bitstream. This bitstream is transmitted to the video decoding system 220. The video decoding system 220 receives a bitstream representing the video frame in an encoding format (i.e., compressed format). In the video decoding system 220, the bitstream is processed by the decoding unit 2201 to obtain decoded transform coefficients. The inverse transform and inverse quantization unit 2202 processes the transform coefficients to generate a residual block in the pixel domain. The intra-frame prediction unit 2203 generates an intra-frame prediction block for the current decoded video block based on the determined intra-frame prediction mode and previously decoded block data of the current video frame or picture. The motion compensation unit 2204 determines inter-frame prediction information for the current decoded video block and generates an inter-frame prediction block by parsing motion vectors and other relevant syntax elements. Ultimately, the decoded video block is obtained by adding the residual block from the inverse transform and inverse quantization unit 2202 to the corresponding prediction block generated by the intra-frame prediction unit 2203 or the motion compensation unit 2204. To improve video quality, the decoded video block is filtered by the filtering unit 2205 to remove blocking artifacts. The decoded video blocks are then stored in the decoded picture buffer unit 2206 as reference blocks for subsequent intra-frame prediction or motion compensation, as well as video output, i.e., reproducing and reconstructing the original video signal.

[0079] The embodiments of the present application are mainly used for the intra-frame prediction unit 2103 in the video encoding system 210 and the intra-frame prediction unit 2203 in the video decoding system 220. If a better prediction effect is obtained in the video encoding system 210 through the intra-frame prediction method provided by the present application, the quality of video decoding and reconstruction can also be improved. The video decoding system 220 receives a bit stream indicating a video frame, which contains the brightness component of the video frame. The intra-frame prediction unit 2203 of the video decoding system 220 can obtain the brightness component of the reference block and the brightness component of the current block, and calculate the Hamming difference and weight accordingly. The intra-frame prediction unit 2203 can perform the same intra-frame prediction method as the intra-frame prediction unit 2103. An embodiment of the intra-frame prediction method will be described in detail later.

[0080] The data structure of a color image is as follows. Figure 8 As shown, a frame of a color image or color video typically consists of three color components: a luma component Y 301 and two chroma components, Cb 302 and Cr 303. Each component is represented as a data matrix, which is decomposed into blocks associated with specific coding parameters. For example, a block 304 of luma component Y, a block 305 of chroma component Cb, and a block 306 of chroma component Cr all correspond to spatial locations 307 on color image 300. In video coding, the luma component is typically processed first, followed by the chroma components.

[0081] The luma component of a color image or video frame has a higher resolution than any of the chroma components, with twice as many pixels in both the vertical and horizontal directions. To facilitate intra-frame prediction, the luma component is downsampled during the intra-frame prediction process to match the resolution of the chroma components, ensuring that all components have the same number of pixels in both the vertical and horizontal directions. This downsampling process ensures that the luma component can be processed efficiently during intra-frame prediction without affecting the quality of the chroma components.

[0082] The principle of cross-component intra prediction is to use the reconstructed image area of one color component to predict the image area of another color component in the same image. Figure 9 As shown, a current chrominance block 405 (which can be Cb or Cr) is about to be encoded. At this time, a current block 401 of the luma component Y at the same spatial location as block 405 has already been encoded and reconstructed. Reference blocks 402, 403, and 404 corresponding to current block 401 are also at the same spatial location as reference blocks 406, 407, and 408 corresponding to current block 405 and have already been encoded and reconstructed. Reference blocks 406, 407, and 408 may constitute the reference region for current block 405. The principle of cross-component prediction is to calculate the relationship between reference blocks 402, 403, and 404 of the luma component and reference blocks 406, 407, and 408 of the chroma components and apply this relationship to current block 401 of the luma component to calculate the predicted values of the chroma components of current block 405. Alternatively, a subset of reference blocks 406, 407, and 408 may constitute the reference region for current block 405.

[0083] Figure 10 Schematic diagram of the intra-frame prediction method according to an embodiment of the present application. Figure 10 As shown, the method includes steps S501 to S505 performed by the video encoding system 210 .

[0084] S501: Determine a reference area of a current block whose chrominance components need to be encoded or decoded.

[0085] The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) determines a reference region of a current block whose chrominance components need to be encoded or decoded. The reference region is usually an area that has been encoded and is adjacent to the current block, and the current block is the area that needs to be intra predicted. For example, Figure 11 As shown, the reference region is determined from the adjacent blocks above and to the left of the current block C. For example, all left blocks (L), upper blocks (U), lower left blocks (LL), upper right blocks (UR), and upper left blocks (UL) of the current block can be used as reference blocks for the current block. The reference region of the current block can be a combination of various reference blocks. For example, the left block (L), lower left block (BL), and upper left block (UL) are selected as the reference region.

[0086] S502: Perform feature extraction on each pixel in the current block and the reference area.

[0087] like Figure 12 As shown, a pixel in the reference area is used as the current pixel and set as the center (C), and the spatial coordinates of the current pixel can be set to (0,0). The intra-frame prediction unit (e.g., intra-frame prediction unit 2103 and / or intra-frame prediction unit 2203) assigns coordinates to nearby pixels. Similar to a Cartesian coordinate system, the horizontal axis is represented by the first axis, and moving from the center (0,0) to the left is considered a negative value, while moving to the right is considered a positive value. The vertical axis is represented by the second axis, and moving downward from the center (0,0) is considered a negative value, while moving upward is considered a positive value.

[0088] The brightness value at coordinates (x,y) can be expressed as Y(x,y). To simplify notation and facilitate referencing surrounding pixels, the eight neighboring pixels adjacent to the current pixel can be identified using azimuth directions. Specifically, these eight neighboring pixels can be represented by the following azimuth letters in these directions: north (N), south (S), west (W), east (E), northwest (NW), northeast (NE), southwest (SW), and southeast (SE).

[0089] During feature extraction, the intra prediction unit (eg, the intra prediction unit 2103 and / or the intra prediction unit 2203) selects one or more feature values from the following feature types as elements of the feature vector: (a). The brightness value of the current pixel, (b) the brightness value of one or more neighboring pixels, (c). The brightness gradient value of the current pixel, (d). The coordinates of the current pixel, and (e) The square of the brightness value of the neighboring pixels at or near the current pixel. When computing the first eigenvector, the current pixel is each reference pixel in each reference block; and When computing the second eigenvector, the current pixel is each target pixel in the target block.

[0090] For example, eight values can be selected to form an eigenvalue set or eigenvector F in the following way: F=[CY(-2,0)Y(2,0)Y(0,-2)Y(0,2)Gx Gy C*C] Where C represents the brightness value of the current pixel; Gx=|2*W+NW+SW-2*E-NE-SE|, Gy=|2*N+NW+NE-2*S-SW-SE|; || represents an absolute value; and W, NW, SW, E, NE, SE, N, and S represent the brightness values of the neighboring pixels of the current pixel in the W, NW, SW, E, NE, SE, N, and S directions.

[0091] As another example, six numerical eigenvalues may be selected to form an eigenvalue set or eigenvector F, according to the following definition: F=[C Gx Gy xy C*C]

[0092] As another example, ten numerical eigenvalues may be selected to form an eigenvalue set or eigenvector F. F=[CY(-3,0)Y(3,0)Y(0,-3)Y(0,3)Gx Gy xy C*C]

[0093] S503: Binarize the selected features according to the reference area.

[0094] Set a benchmark value for binarization for different types of eigenvalues (i.e., eigenvector elements). The benchmark value is defined based on the entire reference area. A certain type of eigenvalue (i.e., eigenvector element) is calculated for all pixels in the reference area and used as a comparison benchmark for that eigenvalue.

[0095] like Figure 13 As shown, each eigenvalue in the eigenvector is compared with the corresponding reference value and binarized into a binary value.

[0096] For the selected feature vector elements belonging to feature types (a) and (b), the intra-frame prediction unit (e.g., intra-frame prediction unit 2103 and / or intra-frame prediction unit 2203) uses the average value (labeled as Mean) or median of the brightness values of all pixels in the reference area as a reference value.

[0097] For the selected feature vector element belonging to feature type (c), the intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) uses a multiple T of the maximum value of the corresponding gradient of all pixels in the reference area as a reference value (expressed as TGX and TGY). The multiple T is strictly greater than 0 and strictly less than 1.

[0098] For the selected feature vector element belonging to feature type (d), the intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) uses the average value of the corresponding coordinates of all pixels in the reference area as a reference value (labeled as MX and MY);

[0099] For the selected feature vector elements belonging to feature type (e), the average value of the squared brightness values of all pixels in the reference area (labeled as Mean MS) is used as the reference value.

[0100] After the reference value is determined, each vector element in the eigenvector is binarized based on whether its value is not less than the reference value. During the binarization process, vector elements in the eigenvector (e.g., the first eigenvector and the second eigenvector) that are not less than the reference value are binarized to 1, and vector elements that are less than the reference value are binarized to 0. Thus, the eigenvector is converted into a binary eigenvector with the same number of elements, each with an element value of 0 or 1.

[0101] S504: Calculate the prediction values of all pixels of the current block to obtain a predicted block. Through the following two sub-steps, the prediction value of each pixel of the current block is calculated one by one, and the set of prediction values of all pixels forms a prediction block.

[0102] S504-1: Compare the binary feature vector of the reference region with the binary feature vector of the current block, and convert the difference into a weight.

[0103] For a binary feature vector of a pixel in the reference area and a binary feature vector of a pixel in the current block, the intra-frame prediction unit (e.g., intra-frame prediction unit 2103 and / or intra-frame prediction unit 2203) compares the two feature vectors to determine the difference and repeats the comparison for all pixels in the reference area and the current block one by one. The difference between the two vectors is quantized and used to create weights for the pixels in the reference area. The difference between these vectors for all pixels in the reference area and the current block is quantized and used to create weights that represent the degree of similarity between the two areas. The weights are used to predict the luminance and chrominance components of the current block relative to the reference area, thereby efficiently encoding and transmitting video frames. The intra-frame prediction unit calculates the difference value between the two feature vectors and converts it into a weight. The compared pixels are not required to have the same spatial position. For example, when the reference area contains n pixels and the current block contains m pixels, a total of n*m comparisons are required.

[0104] The method used to calculate this difference is called the Hamming distance, which is defined as the number of different elements in two eigenvectors. The Hamming distance can be obtained by performing an XOR operation on the two eigenvectors and counting the number of binary 1s in the XOR result. Figure 14 As shown in the figure, this example shows the case where the Hamming distance is 3. When calculating the Hamming distance between two eigenvectors, it is obtained by comparing each vector element of the two eigenvectors and counting the number of different elements.

[0105] The intra prediction unit (eg, the intra prediction unit 2103 and / or the intra prediction unit 2203 ) calculates a Hamming distance between the binary first eigenvector of each reference pixel and the binary second eigenvector of each target pixel.

[0106] The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) generates the weight of the reference pixel by calculating the Hamming distance between each reference pixel in each reference block and the target pixel to be predicted, thereby generating the weight of the reference pixel for multiple reference blocks. These generated weights can be used to generate the predicted chrominance value of the target pixel in the target block based on the chrominance value of the reference pixel in the multiple reference blocks. The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) can use a monotone non-increasing function to convert the Hamming distance into the weight of the reference pixel. For example, the Hamming distance is denoted as H and the weight of the reference pixel is denoted as W. The monotone non-increasing function can be defined as:

[0107] For another example, a monotonically non-increasing function can be defined as:

[0108] For another example, a monotonically non-increasing function can be defined as: W=2 -H (3)

[0109] Note that monotone non-increasing functions are not limited to formulas. For example, a monotone non-increasing function can be defined as: When the Hamming distance of the reference pixel is greater than or equal to a preset value, the weight of the reference pixel is 0; and When the Hamming distance of a reference pixel is less than a preset value, the weight of the reference pixel is 1.

[0110] The preset value may be any number other than 3 in formula (1).

[0111] S504-2: Calculate the pixel prediction value of the current block according to the above weights and the chrominance values of the pixels in the reference area.

[0112] The weighted average of the pixels in the reference area is used to calculate the predicted value. That is, the corresponding chrominance component value of each pixel in the reference area is multiplied by the weight to obtain the product, and then the products of all pixels are summed and divided by the sum of all weights to generate the weighted average.

[0113] In particular, for the reference pixels of the target pixel in the current block, if the sum of the weights is zero, it means that the target pixel cannot be predicted temporarily, and the predicted chromaticity value of the target pixel is temporarily left blank. Such a pixel is temporarily called a blank pixel in the target block. After completing the calculation of the predicted chromaticity values of all pixels in the current block, the intra-frame prediction unit (for example, intra-frame prediction unit 2103 and / or intra-frame prediction unit 2203) can calculate the average value of all predicted chromaticity values and use the average value as the predicted chromaticity value of the above-mentioned blank pixel. More specifically, if all pixels of the current block cannot be predicted, the average value of the chromaticity values of all pixels in the reference area is used as the predicted chromaticity value of all blank pixels in the current block. Since the weight is zero, the predicted chromaticity value of the blank pixel of the current block is the average value of the chromaticity values of all pixels in the reference area, rather than a weighted average value.

[0114] S505: Execute steps S501-S504 multiple times based on different reference block subsets to generate prediction blocks, calculate the difference between each prediction block and the current block, and select one prediction block as the final prediction block.

[0115] The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) performs chroma prediction on the target block based on different reference block subsets in the plurality of reference blocks to generate different prediction blocks of the target block corresponding to the different reference block subsets. The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) selects one of the different prediction blocks of the target block as a final prediction block of the target block.

[0116] The intra prediction unit 2103 outputs the final prediction block for the target block to the next stage in the encoder (e.g., subtractor 2112). The intra prediction unit 2203 outputs the final prediction block for the target block to the next stage in the decoder (e.g., synthesizer 2212). The selection of one of the different prediction blocks for the target block as the final prediction block may be based on the difference between each prediction block and the target block.

[0117] There are multiple reference blocks. The intra prediction unit (e.g., intra prediction unit 2103 and / or intra prediction unit 2203) can select a subset of reference blocks to form a reference region. The corresponding process is then performed to finally calculate a prediction block. For each different subset of reference blocks, steps S501-S504 are performed to perform chrominance prediction and generate a prediction block. Finally, the different prediction blocks are compared with the original data to select the best prediction block.

[0118] When calculating the difference between the predicted block and the current block, the difference may be the sum of absolute errors. Specifically, the intra-frame prediction unit (e.g., the intra-frame prediction unit 2103 and / or the intra-frame prediction unit 2203) obtains the absolute difference between the predicted value and the original value corresponding to each pixel in the current block, and calculates the sum of the absolute errors over all pixels.

[0119] When the prediction block with the smallest difference value is selected, the corresponding selection scheme (i.e., the subset of reference regions) is encoded into the bitstream, and then the intra-frame prediction is completed. For example, the coding unit 2109 encodes the residual block and the corresponding reference region selection scheme into the bitstream.

[0120] The video decoding system 200 receives and decodes a bitstream to obtain residual blocks, weights, and corresponding selection schemes. When performing intra-frame prediction on each current block in the bitstream, the intra-frame prediction unit 2203 uses the corresponding selection scheme to obtain a subset of reference blocks as a reference area and reconstructs and reproduces the prediction block (i.e., the final prediction block) for the current block using the weights and chrominance values of the pixels in the reference area. The specific details of generating the prediction block for the current block from the weights and chrominance values of the pixels in the reference area are the same as those of the intra-frame prediction unit 2103. The inverse transform and inverse quantization unit 2202 performs inverse transform and inverse quantization on the encoded residual block to generate a residual block. The synthesizer 2212 synthesizes the final prediction block and the residual block to generate a decoded video block. The decoded video block is filtered by the filter unit 2205 to remove blocking artifacts. The decoded video block is then stored in the decoded image buffer unit 2206 as a reference block for subsequent intra-frame prediction or motion compensation, and for use in video output, i.e., to reproduce and reconstruct the original video signal.

[0121] Figure 15 FIG. 7 is a block diagram of an exemplary communication system 700 according to an embodiment of the present disclosure. The embodiments described herein may be implemented in any suitably configured hardware and / or software. Figure 15 System 700 is shown, including radio frequency (RF) circuitry 710, baseband circuitry 720, processing unit 730, storage / memory 740, display 750, camera 760, sensor 770, and input / output (I / O) interface 780, connected to each other as shown.

[0122] Processing unit 730 may include circuitry such as one or more single-core or multi-core processors. The processors may include any combination of general-purpose processors and specialized processors, such as graphics processors and application processors. The processors may be connected to storage / memory and configured to execute instructions stored in the storage / memory to support various applications and / or operating systems running on the system.

[0123] The baseband circuitry 720 may include circuitry, such as one or more single-core or multi-core processors. These processors may include a baseband processor. The baseband circuitry may handle various radio control functions to facilitate communication with one or more wireless networks via radio frequency circuitry. Radio control functions may include signal modulation, encoding, decoding, radio frequency offset, and the like. In certain embodiments, the baseband circuitry may support communications compatible with one or more wireless technologies. For example, in certain embodiments, the baseband circuitry may support communications with 5G NR, LTE, the Evolved Universal Terrestrial Radio Access Network (EUTRAN), and / or other wireless metropolitan area networks (WMANs), wireless local area networks (WLANs), and wireless personal area networks (WPANs). Embodiments in which the baseband circuitry is configured to support multiple wireless protocols may be referred to as multi-mode baseband circuitry. In various embodiments, the baseband circuitry 720 may include circuitry that operates with signals that are not strictly considered to be at baseband frequencies. For example, in certain embodiments, the baseband circuitry may include circuitry that operates with signals at intermediate frequencies, which are between the baseband frequency and the radio frequency.

[0124] RF circuitry 710 can communicate with a wireless network using modulated electromagnetic radiation through a non-solid medium. In various embodiments, RF circuitry may include switches, filters, amplifiers, and the like to facilitate communication with the wireless network. In different embodiments, RF circuitry 710 may include circuitry that operates with signals that are not strictly considered RF. For example, in some embodiments, RF circuitry may include circuitry that operates with signals having an intermediate frequency, which is between baseband and RF.

[0125] In various embodiments, transmit circuitry, control circuitry, or receive circuitry associated with a user equipment (UE), enhanced base station (eNB), or next-generation base station (gNB) may be fully or partially embodied in one or more radio frequency circuits, baseband circuitry, and / or processing units. The term "circuitry" as used herein may refer to, constitute, or include application-specific integrated circuits (ASICs), electronic circuitry, processors (shared, dedicated, or grouped), and / or memory (shared, dedicated, or grouped), which execute one or more software or firmware programs, combinational logic circuitry, and / or other suitable hardware components that provide the functionality described. In some embodiments, electronic device circuitry may implement or be associated with circuitry functionality via one or more software or firmware modules. In some embodiments, some or all of the baseband circuitry, processing units, and / or memory / storage components may be integrated into a single system-on-chip (SOC).

[0126] Memory / storage 740 can be used to load and store data and / or instructions, for example, for the system. Memory / storage in one embodiment can include any suitable combination of volatile memory, such as dynamic random access memory (DRAM), and / or non-volatile memory, such as flash memory. In various embodiments, the I / O interface 780 may include one or more user interfaces for enabling user interaction with the system, and / or peripheral component interfaces for enabling peripheral interaction with the system. The user interface may include, but is not limited to, a physical keyboard or keypad, a touchpad, a speaker, a microphone, and the like. The peripheral component interfaces may include, but are not limited to, a non-volatile memory port, a USB port, an audio jack, and a power interface.

[0127] In various embodiments, sensor 770 may include one or more sensing devices to determine environmental conditions and / or location information relevant to the system. In some embodiments, the sensors may include, but are not limited to, gyroscopic sensors, accelerometers, proximity sensors, ambient light sensors, and positioning units. The positioning unit may also be part of, or interact with, baseband circuitry and / or radio frequency circuitry to communicate with components of a positioning network, such as global positioning system (GPS) satellites. In various embodiments, display 750 may include display devices such as liquid crystal displays and touch screen displays. In various embodiments, system 700 may be a mobile computing device, such as a laptop, tablet, netbook, ultrabook, smartphone, etc. In various embodiments, the system may have more or fewer components, and / or different architectures. If desired, the methods described herein may be implemented as a computer program. The computer program may be stored on a storage medium, such as a non-volatile storage medium.

[0128] The embodiments of the present disclosure are a combination of techniques / processes that can be adopted in the 3GPP specifications to create a final product.

[0129] A person with ordinary skills will understand that each unit, algorithm, and step described and disclosed in the embodiments of the present disclosure is implemented by electronic hardware or a combination of computer and electronic hardware software. Whether the function runs on hardware or software depends on the application conditions and the design requirements of the technical solution. A person with ordinary skills can implement the function in different ways according to the specific application, but these implementations should not exceed the scope of this disclosure. A person with ordinary skills will also understand that reference can be made to the working processes of the systems, devices, and units in the above embodiments, because the working processes of the above systems, devices, and units are basically the same. For ease of description and simplification, these working processes are not described in detail herein.

[0130] The systems, devices, and methods disclosed in the embodiments of the present disclosure may be implemented in other ways. The above embodiments are merely examples. The division of units is based solely on logical functions, and other divisions may exist in actual implementations. Multiple units or components may be combined or integrated into another system, and certain features may be omitted or skipped. In addition, the mutual coupling, direct coupling, or communication coupling discussed herein is performed directly or indirectly through some ports, devices, or units in an electrical, mechanical, or other manner.

[0131] The units used as separate components may or may not be physically separate. The units shown may or may not be physical units, i.e., they may be centralized in one location or distributed across multiple network units. The use of these units depends on the purpose of the embodiment. In addition, the functional units in each embodiment may be integrated into a single processing unit, may be physically separate units, or may be integrated into a single processing unit with two or more units.

[0132] If the software functional unit is implemented, used and sold as a product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution proposed in the present disclosure can be basically or partially implemented in the form of a software product. Alternatively, a part of the technical solution that is advantageous over traditional technology can be implemented in the form of a software product. The software product in the computer is stored in a storage medium and includes multiple commands so that a computing device (such as a personal computer, server or network device) runs all or part of the steps disclosed in the embodiments of the present disclosure. The storage medium includes a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a floppy disk or other medium capable of storing program code.

[0133] An embodiment of the present disclosure provides an intra-frame prediction method based on discrete correlation of pixels. The method realizes cross-component prediction through discrete correlation of pixels. The features of pixels in the reference area and the current block are binarized and converted into binary feature vectors, and then a difference comparison is performed. The binary feature vector reduces computational complexity, time consumption and power consumption. The difference is represented by the Hamming distance and converted into a weight from the pixel chrominance value of the reference area to the pixel chrominance value of the current block for intra-frame prediction, which implicitly realizes the discrete correlation of pixels. Multiple prediction blocks of the current block are generated based on different reference block sets. The prediction block with the smallest difference in chrominance component with the current block is selected as the final intra-frame prediction block. The scheme for selecting the reference block set to generate the final prediction block is encoded into the bitstream carrying the video frame as the result of intra-frame prediction. The weight and residual block are also encoded into the bitstream.

[0134] While the present disclosure has been described in terms of what are considered to be the most practical and preferred embodiments, it is to be understood that the disclosure is not limited to the disclosed embodiments, but is intended to cover various arrangements that can be made without departing from the broadest interpretation of the appended claims.

Claims

1. An intra-frame prediction method, characterized in that: Applicable to image encoders or image decoders, including: Obtaining a target block to be encoded and a plurality of reference blocks in a video frame; selecting a subset from the plurality of reference blocks as a reference region; Calculating a first eigenvector of each reference pixel in each reference block in each reference region to obtain a first eigenvector of the reference block, and calculating a second eigenvector of each target pixel in the target block to obtain a second eigenvector of the target block; Binarizing the first eigenvector and the second eigenvector according to the reference values of all pixels in each reference area; Calculating a Hamming distance between the binarized first eigenvector of each reference pixel and the binarized second eigenvector of each target pixel; Generating a weight of each reference pixel in each reference block using the Hamming distance corresponding to each reference pixel; Using the weight of each reference region relative to the target block, performing chroma prediction on the target block based on each reference region to obtain a chroma prediction block corresponding to each reference region; and Select the best candidate block from all chroma prediction blocks.

2. The intra-frame prediction method according to claim 1, wherein: Generate a weight of the reference pixels of the reference area relative to the target block by generating a weight of the Hamming distance between each reference pixel in each reference block and the target pixel to be predicted in the target block; and Generate weights of the plurality of reference pixels in the reference area relative to all target pixels in the target block by generating weights of the plurality of reference pixels in the reference area relative to each target pixel in the target block; The generated weights are applied to generate predicted chrominance values of a plurality of target pixels in the target block using the chrominance values of the reference pixels in the reference area.

3. The intra-frame prediction method according to claim 1, wherein: The chrominance prediction based on the reference area includes generating a predicted chrominance value for each target pixel in the target block using a weighted average of the chrominance values of the reference pixels in the reference area based on corresponding weights of the reference area, thereby forming a predicted block having predicted chrominance values for all target pixels.

4. The intra-frame prediction method according to claim 1, wherein The calculating of the Hamming distance includes calculating, for each target pixel in the target block, the Hamming distance between all reference pixels in the reference area and the target pixel.

5. The intra-frame prediction method according to claim 1, characterized in that The Hamming distance is obtained by performing an exclusive OR operation on the binarized first eigenvector and the binarized second eigenvector of each reference pixel, and calculating the number of binary 1s in the exclusive OR operation result.

6. The intra-frame prediction method according to claim 1, characterized in that include: performing chroma prediction on the target block based on reference blocks of different subsets in the reference region to form different prediction blocks of the target block corresponding to different reference block subsets; Selecting a prediction block from different prediction blocks of the target block as a final prediction block of the target block; as well as The final prediction block of the target block is output to the next stage of the encoder.

7. The intra-frame prediction method according to claim 6, characterized in that include: According to the difference between each of the prediction blocks and the target block, a prediction block is selected from different prediction blocks of the target block as the final prediction block.

8. The intra-frame prediction method according to claim 6, characterized in that When selecting the prediction block with the smallest difference value, the corresponding selection scheme for determining the subset of reference blocks is encoded in the bitstream carrying the video frame.

9. The intra-frame prediction method according to claim 6, characterized in that The method further comprises: The weight of each reference pixel in each reference block is generated by using a monotone non-increasing function according to the Hamming distance.

10. The intra-frame prediction method according to claim 9, wherein: The monotone non-increasing function is defined as: When the Hamming distance of the reference pixel is greater than or equal to a predetermined value, the weight of the reference pixel is zero; and When the Hamming distance of the reference pixel is less than a predetermined value, the weight of the reference pixel is one.

11. The intra-frame prediction method according to claim 9, wherein: The monotone non-increasing function is defined as: The weight of the reference pixel is 1 plus the inverse of the Hamming distance of the reference pixel.

12. The intra-frame prediction method according to claim 9, wherein: The monotone non-increasing function is defined as: The weight of the reference pixel is the reciprocal of an exponential function with base 2, where the exponent is H, and H represents the Hamming distance of the reference pixel.

13. The intra-frame prediction method according to claim 1, characterized in that Each vector element of the first feature vector and the second feature vector includes one or more of the following feature types: (a) the brightness value of the current pixel, (b) the brightness value of one or more nearby pixels, (c) the brightness gradient value of the current pixel, (d) the coordinates of the current pixel, and (e) the square of the brightness value of the current pixel or a neighboring pixel at a nearby position; When calculating the first eigenvector, the current pixel is each reference pixel in each reference block; When calculating the second eigenvector, the current pixel is each target pixel in the target block.

14. The intra-frame prediction method according to claim 13, characterized in that During the binarization process, for the vector elements in the first eigenvector and the second eigenvector, the vector elements not less than the reference value are binarized to 1, and the vector elements less than the reference value are binarized to 0.

15. The intra-frame prediction method according to claim 14, characterized in that: For feature vector elements belonging to feature types (a) and (b), the average value or median value of the brightness values of all pixels in the reference area is set as the reference value.

16. The intra-frame prediction method according to claim 14, characterized in that: For a feature vector element belonging to feature type (c), a multiple T of the maximum value of the gradients corresponding to all pixels in the reference area is used as the reference value.

17. The intra-frame prediction method according to claim 14, characterized in that: For a feature vector element belonging to feature type (d), the average value of the corresponding coordinates of all pixels in the reference area is used as the reference value.

18. The intra-frame prediction method according to claim 14, characterized in that For a feature vector element belonging to feature type (e), the average value of the squared brightness values of all pixels in the reference area is used as the reference value.

19. An electronic device, characterized in that: include: A processor, configured to call and run a computer program stored in a memory, so that a device equipped with the processor executes the method according to any one of claims 1 to 18.

20. A coding chip, characterized in that: include: A processor for calling and running a computer program stored in a memory so that a device equipped with the chip executes a method according to any one of claims 1 to 18.

21. A decoding chip, characterized in that: include: A processor for calling and running a computer program stored in a memory so that a device equipped with the chip executes a method according to any one of claims 1 to 18.

22. A computer-readable storage medium, characterized in that A computer program is stored, which causes a computer to execute the method of any one of claims 1 to 18.

23. A computer program product, characterized in that Comprising a computer program causing a computer to perform the method of any one of claims 1 to 18.

24. A computer program, characterized in that The computer program causes a computer to execute the method of any one of claims 1 to 18.

Citation Information

Patent Citations

  • Multiple reference intra prediction using variable weights

    CN112335240A

  • Method and apparatus for intra prediction

    CN113170100A

  • Method and apparatus for video coding

    CN115769575A

  • Intra-frame prediction systems and methods

    US20170214912A1

  • Intra prediction method, encoder, decoder, and storage medium

    WO2022077490A1