Method and device for inheriting extrapolation intra-frame prediction model in video coding and decoding

By copying and storing extrapolated intra-frame prediction information in the current block and combining multi-source sample prediction and intra-frame template matching prediction, the problem of low intra-frame prediction efficiency in the prior art is solved, and the encoding and decoding performance of the video encoding and decoding system is improved, especially when processing three-dimensional video signals.

CN122003869APending Publication Date: 2026-05-08MEDIATEK INC
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-10-12
Publication Date
2026-05-08

AI Technical Summary

Technical Problem

Existing video encoding and decoding technologies suffer from low efficiency when processing video data, especially during intra-frame prediction. This is particularly true when processing 3D video signals, where existing technologies struggle to effectively utilize extrapolation intra-frame prediction modes to improve encoding and decoding performance.

Method used

By copying and storing the extrapolated intra-prediction information associated with the current block, and allowing subsequent blocks to access this information to derive prediction data, the intra-prediction process is optimized by combining multi-source sample prediction and intra-template matching prediction.

Benefits of technology

It improves the encoding and decoding efficiency of video encoding and decoding systems, especially when processing 3D video signals, enhancing the accuracy and efficiency of intra-frame prediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122003869A_ABST
    Figure CN122003869A_ABST
Patent Text Reader

Abstract

The present invention relates to a method and apparatus for determining an intra-frame prediction using extrapolated Intra Prediction (Expolated Intra Prediction; the invention relates to a video coding and decoding method and device of an EIP mode related mode. According to the method, input data related to a current block is received, where the input data includes pixel data to be encoded at an encoder side or data related to the current block to be decoded at a decoder side. The current block is encoded or decoded using a non-EIP mode. One or more reference blocks pointed by one or more motion vectors or one or more block vectors of the current block are determined. If the one or more reference blocks have target EIP information, the target EIP information is copied from the one or more reference blocks and stored into the current block, where the target EIP information stored in the current block is accessed by one or more subsequent blocks to derive prediction information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-references

[0002] This invention is a non-provisional application of U.S. Provisional Patent Application No. 63 / 589,656 (filed October 12, 2023), and claims priority thereto. The entire contents of the U.S. Provisional Patent Application are incorporated herein by reference. Technical Field

[0003] This invention relates to a video codec system using Extrapolation Intra Prediction (EIP) mode. Specifically, this invention relates to copying EIP information from blocks associated with EIP information and storing such EIP information in the current block when the current block is not encoded or decoded using EIP, wherein such EIP information is accessed by one or more subsequent blocks to derive prediction information. Background Technology

[0004] Versatile Video Coding (VVC) is the latest international video coding standard developed by the ITU-T Video Coding Experts Group (ITU-T VCEG) and the Joint Video Experts Team (JVET) of the International Organization for Standardization / International Electrotechnical Commission (ISO / IEC Moving Picture Experts Group (ISO / IEC MPEG)). This standard has been published as an ISO standard, specifically ISO / IEC 23090-3:2021, Information technology—Coded representation of immersive media—Part 3: Versatile Video Coding. VVC was developed based on its predecessor, High Efficiency Video Coding (HEVC), by adding more coding and decoding tools to improve coding and decoding efficiency and enabling it to handle various types of video sources, including 3D video signals.

[0005] Figure 1AAn example adaptive inter-frame / intra-frame video coding system incorporating loop processing is illustrated. For intra-frame prediction 110, the prediction data is derived based on previously encoded / decoded video data in the current frame. For inter-frame prediction 112, motion estimation (ME) is performed at the encoder, and motion compensation (MC) is performed based on the result of ME to provide prediction data derived from other frames and motion data. Switch 114 selects either intra-frame prediction 110 or inter-frame prediction 112, and the selected prediction data is provided to adder 116 to form a prediction error, also known as a residual. The prediction error is then processed by transform (T) 118, followed by quantization (Q) 120. The transformed and quantized residual is then encoded / decoded by entropy encoder 122 to be included in the video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packaged together with side information and other information, such as motion and encoding / decoding modes related to intra-frame and inter-frame prediction, and parameters related to loop filters applied to the underlying image regions. Figure 1A As shown, side information related to intra-frame prediction 110, inter-frame prediction 112, and loop filter 130 is provided to entropy encoder 122. When using inter-frame prediction mode, the reference image or picture must also be reconstructed at the encoder. Therefore, the transformed and quantized residuals are processed by inverse quantization (IQ) 124 and inverse transformation (IT) 126 to recover the residuals. The residuals are then added back to the prediction data 136 at reconstruction (REC) 128 to reconstruct the video data. The reconstructed video data can be stored in the reference picture buffer 134 and used for prediction in other frames.

[0006] like Figure 1AAs shown, the input video data undergoes a series of processes in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to these processes. Therefore, a loop filter 130 is typically applied to the reconstructed video data before it is stored in the reference image buffer 134 to improve video quality. For example, a deblocking filter (DF), sample adaptive offset (SAO), and adaptive loop filter (ALF) can be used. Loop filter information may need to be included in the bitstream so that the decoder can correctly recover the required information. Therefore, loop filter information is also provided to the entropy encoder 122 for inclusion in the bitstream. Figure 1A In the process, before the reconstructed samples are stored in the reference image buffer 134, the loop filter 130 is applied to the reconstructed video. Figure 1A The system described here is intended to demonstrate an example architecture of a typical video encoder. It may correspond to HEVC, VP8, VP9, ​​H.264, or VVC.

[0007] like Figure 1B As shown, the decoder can use the same or partially the same functional modules as the encoder, except for transform 118 and quantization 120, because the decoder only needs to perform inverse quantization 124 and inverse transform 126. The decoder uses an entropy decoder 140 to decode the video bitstream into quantized transform coefficients and the necessary encoding / decoding information (e.g., ILPF information, intra-frame prediction information, and inter-frame prediction information), instead of the entropy encoder 122. Intra-frame prediction 150 at the decoder end does not require mode search. Instead, the decoder only needs to generate intra-frame predictions based on the intra-frame prediction information received from the entropy decoder 140. Furthermore, for inter-frame prediction, the decoder only needs to perform MC 152 based on the inter-frame prediction information received from the entropy decoder 140, without performing motion estimation.

[0008] According to VVC, the input image is divided into non-overlapping square block regions called Coding Tree Units (CTUs), similar to HEVC. Each CTU can be further divided into one or more smaller Coding Units (CUs). The resulting CU partitions can be square or rectangular. Furthermore, VVC divides the CTUs into Prediction Units (PUs) as units for applying prediction processing, such as inter-frame prediction and intra-frame prediction. To improve the encoding and decoding performance of systems using extrapolation intra-frame prediction modes, methods and apparatus using EIP modes are disclosed. Summary of the Invention

[0009] A video encoding / decoding method and apparatus using Extrapolated Intra Prediction (EIP) mode-related modes are disclosed. According to the method, input data related to the current block is received, wherein such input data includes pixel data to be encoded at the encoder end or data related to the current block to be decoded at the decoder end. The current block is encoded or decoded using a non-EIP mode. One or more reference blocks pointed to by one or more motion vectors or one or more block vectors of the current block are determined. If the one or more reference blocks have target EIP information, such target EIP information is copied from the one or more reference blocks and stored in the current block, wherein the target EIP information stored in the current block is accessed by one or more subsequent blocks to derive prediction information.

[0010] In one embodiment, if the current block is encoded and decoded in Intra Block Copy (IBC) or Intra Template Matching Prediction (IntraTMP) mode, the one or more block vectors are associated with the current luma block of the current block. In one embodiment, if the one or more reference blocks located based on the one or more block vectors or the one or more motion vectors are not EIP encoded and decoded, but first EIP information is stored in the one or more reference blocks, then the stored first EIP information is used as the target EIP information. In one embodiment, if the one or more reference blocks correspond to multiple reference blocks and only one of the multiple reference blocks has first EIP information, then the first EIP information is used as the target EIP information. In one embodiment, if multiple reference blocks have first EIP information, then the target EIP information is derived by combining all or part of the corresponding EIP models associated with the multiple reference blocks.

[0011] In one embodiment, if multiple reference blocks have first EIP information, then target EIP information is copied from the first EIP information of a target reference block of the multiple reference blocks according to one or more predefined rules. In one embodiment, a reference block with EIP encoding / decoding is selected as the target reference block of the multiple reference blocks. In another embodiment, a reference block with intra-frame encoding / decoding, inter-frame encoding / decoding, or IBC encoding / decoding is selected as the target reference block of the multiple reference blocks. In one embodiment, a reference block with the shortest distance to the current block is selected as the target reference block of the multiple reference blocks according to a distance metric. In one embodiment, the distance metric corresponds to Euclidean distance, Manhattan distance, Minkowski distance, horizontal distance, or vertical distance. In one embodiment, a reference block with the smallest distortion compared to the current block is selected as the target reference block of the multiple reference blocks according to a distortion metric.

[0012] In one embodiment, if the current block is inter-frame encoded and decoded using bidirectional prediction, and both reference blocks located by one or more motion vectors of the current block store EIP information, then one of these reference blocks is selected according to a set of predefined rules. In one embodiment, one or more motion vectors of the current block are located at the center or top-left corner of the current block, the motion vector prediction (MVP) of the current block is used, or a combination of MVP and motion vector difference (MVD) is used. In one embodiment, the set of predefined rules includes the dependency of the picture order count (POC) distance between the reference image associated with the reference block and the current image. In one embodiment, the set of predefined rules includes the dependency of the quantization parameter (QP) value of the reference block.

[0013] In one embodiment, the position of a target block located by a motion vector is restricted to a collocated CTU row in the reference image of the current Coding Tree Unit (CTU) row. In one embodiment, if the target block's position is above the collocated CTU row, the position is mapped to the top row of that collocated CTU row, and the EIP information of the mapped position is copied and stored in the current block. In one embodiment, if the target block's position is below the collocated CTU row, the position is mapped to the bottom row of that collocated CTU row, and the EIP information of the mapped position is copied and stored in the current block. Attached Figure Description

[0014] Figure 1A An adaptive inter-frame / intra-frame video coding system incorporating loop processing is illustrated as an example.

[0015] Figure 1B Explanation Figure 1A The corresponding decoder for the encoder.

[0016] Figure 2A -C indicates the three types used to derive EIP filter coefficients ( Figure 2A Top left area Figure 2B The upper area Figure 2C The reconstruction area (left side area).

[0017] Figure 3 Three filter shape types with fifteen inputs and generating one output for the EIP process are described.

[0018] Figure 4 This example illustrates how to generate a predicted scan order by taking different positions of the current block in diagonal order.

[0019] Figure 5 An example of a square-shaped EIP filter is illustrated.

[0020] Figure 6 An example of a horizontally shaped EIP filter is illustrated.

[0021] Figure 7 An example of a vertically shaped EIP filter is illustrated.

[0022] Figure 8 An example of a diamond-shaped EIP filter is illustrated.

[0023] Figure 9 An example of spatial merging candidate locations is illustrated.

[0024] Figure 10 An exemplary pattern for non-adjacent spatial merging candidates is illustrated.

[0025] Figure 11A (Mode 1) and Figure 11B (Mode 2) illustrates two different non-adjacent spatial proximity candidate modes based on predefined location and predefined order.

[0026] Figure 12 An example of EIP information propagation is illustrated, where the dashed blocks (i.e., A, E, G) are encoded and decoded in EIP mode.

[0027] Figure 13 This illustrates another example of EIP information propagation.

[0028] Figure 14This illustrates an example of mapping the external location of a CTU row to the internal location of a CTU row at the same location.

[0029] Figure 15 An example of EIP information propagation with motion vectors and block vectors is illustrated, where the dashed block (i.e., A) is encoded and decoded in EIP mode.

[0030] Figure 16 This illustrates an example of EIP message propagation with colocation mapping. The dashed block (i.e., A) is encoded and decoded in EIP mode.

[0031] Figure 17 According to an embodiment of the present invention, a flowchart of an exemplary video codec system is illustrated, which copies EIP information from a non-EIP codec block and stores the EIP information in the current block so that subsequent blocks can access it to derive prediction information. Detailed Implementation

[0032] It is readily understood that, as generally described and illustrated in the figures, the components of the present invention can be arranged and designed in various different configurations. Therefore, the following more detailed description of embodiments of the systems and methods of the present invention, as shown in the figures, is not intended to limit the scope of the invention as described in the claims, but only represents selected embodiments of the invention. References to "an embodiment," "an embodiment," or similar language throughout the specification mean that a particular feature, structure, or characteristic associated with that embodiment may be included in at least one embodiment of the invention. Therefore, "in an embodiment" or "in one embodiment" appearing throughout the specification do not necessarily refer to the same embodiment.

[0033] Furthermore, the described features, structures, or characteristics can be combined in one or more embodiments in any suitable manner. Those skilled in the art will recognize that the invention can be practiced without one or more specific details, or using other methods, components, etc. In other instances, well-known structures or operations have not been shown or described in detail to avoid obscuring certain aspects of the invention. Illustrative embodiments of the invention will be best understood by referring to the accompanying drawings, in which like parts are designated with the same numerals throughout the drawings. The following description is merely illustrative, briefly illustrating certain selected apparatus and method embodiments consistent with the claims of this invention.

[0034] Extrapolation Intra Prediction (EIP)

[0035] In JVET AD0081, an "extrapolation intra-slice prediction" method was proposed. According to AD0081, the application of EIP is limited to block sizes no larger than 32x32 and is only used for intra slices. Since the EIP process according to AD0081 generates a prediction value for each sample within a block (i.e., the process generates prediction values ​​sample by sample within a block), in this invention, this process is given another name, namely "multiple source sample-based prediction".

[0036] Get the minimum, maximum, and offset values ​​of EIP.

[0037] Similar to the Convolutional Cross-Component Model (CCCM), offset values ​​are removed when the input data is fed into the EIP filter. The top-left reconstructed pixel of the predefined neighborhood of the current block is used as the offset value for EIP prediction. The minimum and maximum values ​​are obtained from the reconstructed pixels of the predefined reconstruction region of the current block.

[0038] EIP filter coefficient calculation

[0039] As shown in Figure 2 and Figure 3 As shown, three reconstruction regions and three filter shapes are proposed. In Figure 2, the three reconstruction regions correspond to the upper left region ( Figure 2A ), the area above ( Figure 2B ) and the left area ( Figure 2C The size of the reconstructed region depends on min(blockWidth, blockHeight) and the selected filter shape. For example, when the current block is an 8x16 block and the selected filter shape is 4x4, the upper size (aboveSize) of the reconstructed region is min(8, 16) + 4 – 1 = 11, and the left size (leftSize) of the reconstructed region is min(8, 16) + 4 – 1 = 11. Figure 3 In this model, three filter shapes correspond to a square (310), a horizontal stripe (320), and a vertical stripe (330). The selected filter moves within the selected reconstruction region in single-pixel steps to collect input and output samples for the EIP. Autocorrelation matrices and cross-correlation vectors are constructed while removing offsets from the input and output samples. The EIP coefficients are then obtained using the same method as in CCCM.

[0040] EIP's current block prediction

[0041] EIP mode generates predictions for the current block using a diagonal prediction order, from the top left to the bottom right. Figure 4 As shown, the arrows indicate the direction of movement of the 4x4 filter.

[0042] To reduce prediction errors, the minimum and maximum values ​​of the neighborhood reconstruction region are used to limit the output range of each prediction value.

[0043] The calculation of the predicted samples in the test is as follows:

[0044] in It is the predicted value at the current block position (x, y). The offset is the value as described above. It is the derived EIP filter. The coefficients, with indices from 0 to 14, It is used for the reconstruction or prediction of the current predicted location.

[0045] Intra-frame template matching

[0046] Intra Template Matching Prediction (IntraTMP) is a special intra-frame prediction mode that copies the best prediction block from the reconstructed portion of the current frame, whose L-shaped template matches the current template. For a predefined search range, the encoder searches the reconstructed portion of the current frame for the template most similar to the current template and uses the corresponding block as the prediction block. The encoder then indicates the use of this mode and performs the same prediction operation at the decoder.

[0047] A prediction signal is generated by matching the L-shaped causal neighborhood of the current block with another block within a predefined search area.

[0048] The sum of absolute differences (SAD) is used as the cost function.

[0049] Within each region, the decoder searches for the template with the smallest SAD relative to the current template and uses its corresponding block as the prediction block.

[0050] To accelerate the template matching process, the search range of all search regions is subsampled by a factor of 2. This reduces the template matching search to one-quarter of its original size. After finding the best match, a refinement process is performed. Refinement is accomplished by performing a second template matching search around the best match with a narrowed range.

[0051] In the present invention, methods and devices for improving the performance of a video codec system adopting the EIP mode are disclosed.

[0052] I. Extension of EIP

[0053] As shown below, in the first embodiment, various source patterns (i.e., various filter shapes) are defined for prediction based on multi-source samples. The proposed prediction scheme can be applied to the luminance component, the chrominance component, or both. It should be noted that each source sample (i.e., the input of the filter) can be a reconstructed sample or a predicted sample generated by prediction based on multi-source samples. When there is neither a reconstructed sample nor a predicted sample for the source sample, a default sample can be used. The default sample can be a predefined value, such as the middle value in the full range of sample values. The default sample can also be a predicted value generated by an existing intra-frame prediction method, such as TIMD, DIMD, CCLM, CCCM, Planar mode, DC mode, angular intra-frame prediction mode, MIP, etc.

[0054] Type 1 (square shape): As Figure 5 shown, NxN - 1 source samples are used to generate a predicted value for the target (to-be-predicted) sample. The target sample can be any sample within the NxN block. In Figure 5 it, two 4x4 patterns (510 and 520) and two 3x3 patterns (3x3) are shown.

[0055] Type 2 (horizontal shape): As Figure 6 shown, MxN - 1 (M > N) source samples are used to generate a predicted value for the target (to-be-predicted) sample. The target sample can be any sample within the MxN block. In Figure 6 it, two 8x2 patterns (610 and 620) and two 4x2 patterns (630 and 640) are shown.

[0056] Type 3 (vertical shape): As Figure 7 shown, MxN - 1 (M < N) source samples are used to generate a predicted value for the target (to-be-predicted) sample. The target sample can be any sample within the MxN block. In Figure 7 it, two 2x8 patterns (710 and 720) and two 2x4 patterns (730 and 740) are shown.

[0057] Type 4 (diamond shape): As Figure 8As shown, the M-tap diamond kernel is used for prediction based on multi-source samples. M-1 source samples are used to generate predicted values ​​for the target (to be predicted) sample. The target sample can be any sample within the M-tap diamond kernel. Figure 8 The document shows two 5x5 patterns (810 and 820). In this specification, "core" and "filter shape" are used interchangeably.

[0058] II. EIP Model Inheritance

[0059] II.1 Inheriting EIP Information

[0060] In one embodiment, all or part of the EIP information (related to the inherited EIP model) of the inherited EIP model can be stored together with the inherited EIP model parameters. All or part of the EIP information related to the EIP model can be stored together with the EIP model parameters. The EIP information and EIP model parameters are stored together in a block. The EIP model parameters refer to the EIP filter coefficients described in the sections "Calculation of EIP Filter Coefficients" and "Current Block Prediction of EIP".

[0061] EIP information includes, but is not limited to, template region selection type (e.g., EIP_T, EIP_L, or EIP_LT), template region size, kernel type (e.g., 4x4 square kernel, 8x2 rectangular kernel, or 2x8 rectangular kernel), multi-model flags, multi-model classification methods, multi-model thresholds, fusion flags, fusion methods, post-filtering flags, or model parameters. The template region refers to the reconstructed region of the EIP. EIP_T, EIP_L, and EIP_LT respectively refer to the upper region (…). Figure 2B ), left side area ( Figure 2C ) and the upper left area ( Figure 2A The kernel type refers to the filter shape type.

[0062] In one embodiment, a propagation flag may be stored in EIP information. This information describes whether the EIP information was copied from a reference block as described in the "Propagated EIP Information" section. As described in the "Propagated EIP Information" section, if a block uses an EIP filter, the EIP information of the current block is derived and stored. The propagation flag of the current block's EIP information is set to false. If a block does not use an EIP filter, and the EIP information of the current block is derived by copying EIP information from a reference block, the propagation flag of the current block's EIP information is set to true.

[0063] In another embodiment, the EIP information may include information indicating the source from which the EIP information is propagated. For example, as described in the "Propagated EIP Information" section, the reference block from which the EIP information is copied may be a block located by the block vector of the current block, a block located by the motion vector of the current block, or a block at the same location as the current block.

[0064] II.2 Inheritance Spatial Proximity Model Parameters

[0065] In one embodiment, inherited model parameters can come from an adjacent block. Models from blocks at predefined locations are added to the candidate list in a predefined order. For example, the predefined location could be... Figure 9 For the position shown in the current block 910, the predefined order can be B0, A0, B1, A1 and B2, or A0, B0, B1, A1 and B2.

[0066] In another embodiment, if W is greater than or equal to TH, the predefined position includes the position directly above the center of the top row of the current block. Assuming the current chroma block is located at (x, y), the predefined position could be (x + (W >> 1), y - 1) or (x + (W >> 1) – 1, y - 1). If H is greater than or equal to TH, the predefined position also includes the position directly to the left of the center of the left row of the current block. This predefined position could be (x – 1, (H >> 1)) or (x – 1, (H >> 1) – 1). W and H are the width and height of the current block, respectively, and TH is a threshold that can be 4, 8, 16, 32, or 64.

[0067] II.3 Inheritance Time Proximity Model Parameters

[0068] In another embodiment, if the current slice / image is a non-intra-frame slice / image, the inherited model parameters can be derived from blocks in previously encoded / decoded slices / images. For example, the current block position is (x, y), and the block size is... The inherited model parameters can come from blocks in previous codec slices / images at positions (x', y'), (x', y' + h / 2), (x' + w / 2, y'), (x' + w / 2, y' + h / 2), (x' + w, y'), (x', y' + h), or (x' + w, y' + h), where x' = x + Δx and y' = y + Δy. Δx and Δy can be zero.

[0069] In one embodiment, if the current block is an inter-frame unidirectional prediction, then Δx and Δy are set to the horizontal and vertical motion vectors in reference image list 0 or 1 according to the reference image list used by the current block.

[0070] In another embodiment, if the current block is an inter-frame unidirectional prediction, the motion vectors of list 0 or list 1 can be scaled to a predefined co-location image. In another embodiment, if the current block is an inter-frame bidirectional prediction, the motion vectors of list 0 and / or list 1 can be scaled to a predefined co-location image.

[0071] In one embodiment, if the current slice / image is a non-intra-frame slice / image, the inherited model parameters can be derived from blocks in previously encoded / decoded slices / images. In one embodiment, the current block position is (x, y), and the block size is... Two sets of values and The definition is as follows:

[0072] All in and All values ​​in the set are positive. Let The inherited model parameters can come from previously encoded / decoded slices / images located at... The block of location.

[0073] In one sub-implementation, .For example, .

[0074] In another sub-implementation, .For example, .

[0075] In another embodiment, the current block position is (x, y), and the block size is... The inherited model parameters can come from previously encoded / decoded slices / images located at... The block of location.

[0076] In one sub-implementation, .For example, .

[0077] In another sub-implementation, .For example, .

[0078] In another embodiment, the current block position is (x, y), and the block size is... The inherited model parameters can come from certain predefined locations in previously encoded / decoded slices / images. The blocks. For example, these positions are located within the corresponding region of the current encoded block, i.e. Inherited model parameters can come from... The block. Another example is that these positions are located outside the corresponding region of the current encoded block, i.e. ,or Inherited model parameters can come from... The block.

[0079] In one embodiment, the previously encoded image from which the inherited parameter model originates, i.e., the collocated image, is one of the images in the reference list. The previously encoded image from which the inherited parameter model originates is referred to below as the collocated image.

[0080] In one embodiment, the co-location image is the same as the co-location reference image for Temporal Motion Vector Prediction (TMVP) in inter-frame merging mode. In another embodiment, the co-location image may be different from the co-location reference image for TMVP in inter-frame merging mode.

[0081] In one embodiment, co-location images are signaled in the Slice Header (SH). Reference lists and reference indices are signaled in the Slice Header (SH). For example, a co-location image is selected as L0[0]. Another example is that a co-location image is selected as L1[0].

[0082] In one embodiment, the number of co-location images being signaled can be more than one. For example, the number of co-location images being signaled is two. Temporal candidates from two co-location images can be inherited.

[0083] In one embodiment, the image at the same location is selected as the image in the reference list with the smallest difference in Picture Order Count (POC) from the current image.

[0084] In another embodiment, an image with a smaller quantization parameter (QP) is selected as the image at the same location.

[0085] In another embodiment, an image with a larger quantization parameter is selected as the same location image.

[0086] In one embodiment, if an image in the reference list is rescaled (i.e., RprConstraintsActiveFlag of the co-location image is true), meaning that one or more of the following seven parameters of the co-location image differ from the seven parameters of the current image: 1) image width in the luminance samples (pps_pic_width_in_luma_samples), 2) image height in the luminance samples (pps_pic_height_in_luma_samples), 3) left offset of the scaling window (pps_scaling_win_left_offset), 4) right offset of the scaling window (pps_scaling_win_right_offset), 5) top offset of the scaling window (pps_scaling_win_top_offset), 6) bottom offset of the scaling window (pps_scaling_win_bottom_offset), and 7) number of subpics minus 1 (sps_num_subpics_minus1), then that image will not be selected as the co-location image.

[0087] In one embodiment, the rules for selecting / not selecting co-located images described in the preceding paragraphs can be used in combination. For example, co-located images are selected from unrescaled images in a reference list. The co-located image is selected as the one with the smallest difference in POC (Point of Content) with the current image.

[0088] In one embodiment, EIP information is prevented from being inherited from the same location image when the same location image is rescaled.

[0089] In one embodiment, when an image at the same location is rescaled, the position of the inherited model can be scaled according to the scaling ratio. The scaling ratio is derived based on the scaling windows of the current image and the image at the same location. Let the position be (x, y), the scaled position be (x', y'), and the scaling ratio be R. The scaled position can be (x / R, y / R) or a rounded (x / R, y / R) position. The rounding method used can include, but is not limited to, the following methods: rounding towards negative infinity, rounding towards positive infinity, rounding towards zero, or taking the nearest integer (e.g., rounding away from zero, rounding to the nearest integer, rounding to the nearest whole number, etc.).

[0090] In one embodiment, the location from which the image at the same position and the inherited parameter model originate are determined by the motion vectors of neighboring blocks. For example, if the current block position is (x, y) and the block size is... The inherited model parameters can come from blocks in the same image at positions (x', y'), (x', y' + h / 2), (x' + w / 2, y'), (x' + w / 2, y' + h / 2), (x' + w, y'), (x', y' + h), or (x' + w, y' + h), where x' = x + Δx and y' = y + Δy. Δx and Δy are set as the L0 horizontal and vertical motion vectors of the neighboring blocks.

[0091] In another embodiment, when selecting a neighboring block from which the motion vector source is located, a predefined list of locations may be available. The locations are arranged in the order they are examined. For example, these locations could be the spatial locations described in the "Inherited Spatial Proximity Model Parameters" section.

[0092] Another example is that the positions in the list are checked according to a predefined inspection order. For each position, the L0 motion vector is checked first, followed by the L1 motion vector. Another example is that the L1 motion vector is checked first, followed by the L0 motion vector. The selected motion vector is the first motion vector whose reference image is the image at the same location (i.e., the image at the same location is determined before selecting neighboring motion vectors). In another embodiment, if the motion vector for a position is unavailable (or invalid), the position is skipped, and the inspection continues to the next position, following the inspection order.

[0093] II.4 Inheriting the Non-Adjacent Spatial Proximity Model

[0094] In one embodiment, inherited model parameters can come from spatially neighboring blocks. Models from blocks at predefined locations are added to the candidate list in a predefined order. For example, the patterns for location and order can be as follows: Figure 10 As shown. Each small square represents a candidate position, and the number inside the square indicates a predefined order. The distance between each position and the current block is based on the width and height of the current codec block.

[0095] In another embodiment, the maximum number of inherited models from non-adjacent spatial neighbors is less than the number of predefined locations. For example, if the predefined locations are as follows: Figure 11A and Figure 11B As shown, there are two search modes. Search mode 1 ( Figure 11A The candidate positions in search mode 2 are the positions in search mode 2. Figure 11B Candidates for positions in the sequence are added to the candidate list before the positions in the sequence. If the maximum number of inherited models from non-adjacent spatial neighbors that can be added to the candidate list is [missing information], then [missing information]. Then only when search pattern 1 ( Figure 11A The number of available models for the location in ) is less than At that time, search mode 2 ( Figure 11BOnly models that are in the position specified in the diagram will be added to the candidate list.

[0096] II.5 Inheriting Model Parameters from History Tables

[0097] In one embodiment, the inherited model parameters can come from the EIP model history table. Models in the history table can be added to the candidate list in a predefined order. In one embodiment, the order in which historical candidates are added can be from the beginning to the end of the table. In another embodiment, the order in which historical candidates are added can be from a predefined position to the end of the table. In another embodiment, the order in which historical candidates are added can be from the end to the beginning of the table. In another embodiment, the order in which historical candidates are added can be from a predefined position to the beginning of the table. In yet another embodiment, the order in which historical candidates are added can be staggered (e.g., the first candidate added comes from the beginning of the table, the second candidate added comes from the end of the table, and so on).

[0098] In one embodiment, a single EIP model history table can be maintained to store previous EIP models, and this history table can be reset at the current image, current tile, current tile, every M CTU rows, or at the beginning of every N CTU, where N and M can be any values ​​greater than 0. In another embodiment, the EIP model history table can be reset at the current image, current tile, current tile, current CTU row, or at the end of the current CTU.

[0099] II.6 Constructing the Candidate List

[0100] In one embodiment, the candidate list is created by adding candidates in a predefined order until a maximum number of candidates is reached. The added candidates may include, but are not limited to, all of the candidates described above. For example, the candidate list may include spatially adjacent candidates, temporally adjacent candidates, historical candidates, and non-adjacent adjacent candidates.

[0101] In another embodiment, if all predefined neighboring and historical candidates have been added but the maximum number of candidates has not been reached, some default candidates are added to the candidate list until the maximum number of candidates is reached.

[0102] In another embodiment, the default candidate can be a shortcut for indicating the EIP mode (i.e., deriving the EIP model using the current neighbor reconstructed samples), rather than inheriting parameters from neighbors. For example, the default candidate could be EIP_LT, EIP_L, or EIP_T.

[0103] II.7 Signaling Inheritance Candidates in the List

[0104] In one embodiment, a signaling on / off flag indicates whether the current block inherits EIP model information from neighboring blocks. This flag can be signaled per coding unit (CU) / coding block (CB), per prediction unit (PU), per transform unit (TU) / transform block (TB), or per color component. The signaling high-level syntax can be in the sequence parameter set (SPS), picture parameter set (PPS), picture header (PH), or SH to indicate whether the proposed method is permitted for the current sequence, picture, or slice.

[0105] In one embodiment, if the current block inherits EIP model parameters from neighboring blocks, the signaling inherits the candidate index. This index can be signaled by color component (e.g., using truncated unary code, Exp-Golomb code, or fixed-length code).

[0106] II.8 EIP Information Dissemination

[0107] In one embodiment, after encoding / decoding a block, the EIP information of the current block is derived and stored in the current block. The stored EIP information can be referenced by subsequent encoding / decoding blocks (i.e., subsequent encoding / decoding blocks) when inheriting EIP information. Subsequent encoding / decoding blocks can inherit EIP information from the current block. The definition of EIP information is given in the "Inheriting EIP Information" section. The stored EIP information can be inherited as, but is not limited to, the following types of candidates: spatial candidates (as described in the "Inheriting Spatial Proximity Model Parameters" section), non-adjacent candidates (as described in the "Inheriting Non-Adjacent Spatial Proximity Model" section), temporal candidates (as described in the "Inheriting Temporal Proximity Model Parameters" section), and historical candidates (as described in the "Inheriting Model Parameters from History Table" section).

[0108] In one embodiment, if the current block is encoded or decoded in EIP mode, the EIP information associated with the EIP mode is stored in the current block.

[0109] In one embodiment, if the current block is not encoded in EIP mode, and one or more block vectors are available in the current block (e.g., the current block or a co-located luma block is encoded in IBC or IntraTMP mode), the EIP information of the current block can be derived by copying the EIP information of a reference block located by the block vectors. For example, as Figure 12As shown, block B is not encoded in EIP, and block vectors are available in block B. Reference block A is located by block vectors. The EIP information (encoded in EIP) of reference block A is copied and stored in block B.

[0110] In one embodiment, if the reference block located by the block vector is not encoded or decoded using EIP, but the reference block stores EIP information, the EIP information of the current block can be derived by copying the EIP information stored in the reference block. That is, even if the reference block is not encoded or decoded using EIP, as long as it has valid stored EIP information, the current block can reference (i.e., copy) that stored EIP information. For example, as... Figure 12 As shown, block C currently has block vectors available, and its reference block B is not encoded or decoded in EIP, but it stores EIP information. The EIP information of block B is copied and stored in block C. Since the EIP information stored in block B is copied from block A, the EIP information stored in block C originally came from block A (i.e., the EIP information of block A was propagated to block C). By accessing only block B, block C can retrieve the EIP information that originally came from block A.

[0111] In one embodiment, if the reference block located by the block vector is not encoded or decoded in EIP and does not store EIP information, then the current block does not store EIP information.

[0112] In one embodiment, the block vector used to derive the reference block is the block vector at the center of the block or a brightness block at the same location. In another embodiment, the block vector used to derive the reference block is the block vector at the top left corner of the block or a brightness block at the same location.

[0113] In one embodiment, when multiple block vectors are available for the current block (e.g., block vectors can be bidirectional, and the block can have multiple IntraTMP block vectors), in order to derive the EIP information of the current block, if only one of the reference blocks located by the block vectors has EIP information, then the EIP information of the reference block with EIP information is copied and stored in the current block. For example, as... Figure 12 As shown, assume block F has two block vectors and two reference blocks G and H. Block G has EIP information, while block H does not. The EIP information of block G is copied and stored in block F.

[0114] In another embodiment, when the current block has multiple block vectors, and multiple reference blocks located by the block vectors have EIP information, a reference block is selected according to a set of predefined rules. The EIP information of the selected reference block is then copied and stored in the current block.

[0115] For one sub-implementation, a reference block encoded or decoded using EIP is selected.

[0116] For one sub-implementation, a reference block is selected for intra-frame encoding / decoding.

[0117] For one sub-implementation, a reference block is selected for inter-frame encoding / decoding.

[0118] For one sub-implementation, a reference block encoded / decoded with IBC is selected.

[0119] In one sub-implementation, the reference block with the smallest distance to the current block is selected. The EIP information of the selected reference block is copied and stored in the current block. The reference block and the current block are located at... and Its distance can be calculated as . and It can be the top left, top right, bottom left, bottom right, or center position of the reference block and the current block.

[0120] For one sub-implementation, a reference block with the smallest horizontal distance is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0121] In another sub-implementation, a reference block with the smallest vertical distance is selected. The EIP information of the selected reference block is copied and stored in the current block.

[0122] In one sub-implementation, the EIP information of two reference blocks is applied to the template of the current block to generate a prediction for that template. The distortion between the predicted sample and the reconstructed sample of the template is calculated. A reference block associated with the smaller distortion is selected.

[0123] For a single implementation, the aforementioned rules can be combined; it is not necessary to apply all of them. For example, a reference block for EIP encoding / decoding is selected. If there are more than one reference block for EIP encoding / decoding, the block with the shortest distance to the current block is selected from these reference blocks. If there are more than one reference block with the shortest distance to the current block, the reference block with the smallest horizontal distance is selected, |x r - x c Another example involves selecting a reference block for EIP encoding / decoding. If more than one EIP encoding / decoding reference block exists, the block with the shortest distance to the current block is selected from these reference blocks. If more than one EIP encoding / decoding reference block has the shortest distance to the current block, the reference block with the smallest vertical distance is selected. r - y c The EIP information of the selected reference block is copied and stored in the current block.

[0124] In one embodiment, if the current block is not an EIP codec and there are available motion vectors in the current block (e.g., the current block is an inter-frame codec), the EIP information of the current block can be derived by copying the EIP information of a reference block located by the motion vectors of the current block in the reference image. For example, as Figure 13 As shown, block B is not an EIP codec and contains available motion vectors. Reference block A is located by motion vectors. The EIP information of reference block A (using a cross-component model) is copied and stored in block B.

[0125] In one embodiment, if the reference block located by motion vectors is not an EIP codec, but it stores EIP information, the EIP information of the current block can be derived by copying the EIP information stored in the reference block. That is, even if the reference block is not an EIP codec, as long as it has valid stored EIP information, the current block can reference (i.e., copy) that stored EIP information. For example, as... Figure 13 As shown, block C currently has available motion vectors. Its reference block B is not an EIP codec, but it stores EIP information. The EIP information of block B is copied and stored in block C. Since the EIP information stored in block B is copied from block A, the EIP information stored in block C originally came from block A (i.e., the EIP information of block A was propagated to block C). By accessing only block B, block C can retrieve the EIP information originally from block A.

[0126] In one embodiment, if the reference block located by the motion vector is neither an EIP codec nor stores EIP information, then the current block does not store any EIP information.

[0127] In one embodiment, the motion vector used to derive the reference block is the motion vector of the center of the current block or a brightness block at the same position. In another embodiment, the motion vector used to derive the reference block is the motion vector of the upper left corner of the current block or a brightness block at the same position.

[0128] In one embodiment, the motion vector used to derive the reference block is the motion vector prediction (MVP) of the current block. In another embodiment, the motion vector used to derive the reference block is a combination of the MVP of the current block and the motion vector difference (MVD).

[0129] In one embodiment, when the current block is inter-frame encoded and decoded using bidirectional prediction, if only one of the reference blocks located by motion vectors has EIP information, then the EIP information of that reference block is copied and stored in the current block. For example, as... Figure 13As shown, assuming block F uses bidirectional prediction for inter-frame encoding and decoding, the two reference blocks located by motion vectors are block G and block H. Block G stores EIP information, while block H does not. The EIP information of block G is copied and stored in block F.

[0130] In another embodiment, when the current block is inter-frame encoded and decoded using bidirectional prediction and both reference blocks located by motion vectors store EIP information, one of the reference blocks is selected according to a set of predefined rules. The EIP information of the selected reference block is then copied and stored in the current block.

[0131] For one sub-implementation, a reference block for EIP encoding / decoding is selected.

[0132] For one sub-implementation, a reference block for intra-frame encoding / decoding is selected.

[0133] For one sub-implementation, a reference block for inter-frame encoding / decoding is selected.

[0134] For one sub-implementation, a reference block for IBC encoding / decoding is selected.

[0135] In one sub-implementation, a reference block with a smaller POC distance between its reference image and the current image is selected. The EIP information of the selected reference block is copied and stored in the current block. Figure 13 As shown, block F uses bidirectional prediction for inter-frame encoding and decoding, with two reference blocks, block G and block H, located by motion vectors. Assume that both blocks G and H store EIP information, and |N1-N2| is less than |N3-N2|. Then, block G is selected, and its EIP information is copied and stored in block F.

[0136] In one sub-implementation, a reference block with a smaller QP difference between its reference image and the current image is selected. The EIP information of the selected reference block is copied and stored in the current block. Figure 13 As shown, block F uses bidirectional prediction for inter-frame encoding and decoding, with two reference blocks, G and H, located by motion vectors. Assume that both blocks G and H store EIP information. Assume the image QPs of POCN1, POC N2, and POC N3 are 27, 32, and 33, respectively. Since |33-32| is less than |27-32|, block H is selected, and its EIP information is copied and stored in block F.

[0137] In one sub-implementation, a reference block with a smaller QP value in its reference image is selected. In another sub-implementation, a reference block with a larger QP value in its reference image is selected.

[0138] In one sub-implementation, if the POC distance between the reference image and the current image is greater than a threshold, then the reference block is not selected.

[0139] In one sub-implementation, the EIP information of two reference blocks is applied to the template of the current block to generate a prediction for that template. The distortion between the predicted sample and the reconstructed sample of the template is calculated. A reference block associated with the smaller distortion is selected.

[0140] For a sub-implementation, the aforementioned rules can be combined; it is not necessary to apply all of them. For example, a reference block of EIP encoding / decoding is selected. If both blocks are EIP encoding / decoding, the block with the smaller POC distance between its reference image and the current image is selected. If both blocks are EIP encoding / decoding and have the same POC distance to the current image, the reference block with the smaller QP difference between its reference image and the current image is selected. If both blocks are EIP encoding / decoding and have the same POC distance and QP difference with the current image, the reference block with the smaller QP value of its reference image is selected. Another example is to select the block with the smaller POC distance between its reference image and the current image. If both blocks have the same POC distance to the current image, the reference block with the smaller QP difference between its reference image and the current image is selected. If both blocks have the same POC distance and QP difference with the current image, the reference block with the smaller QP value of its reference image is selected.

[0141] In one embodiment, when a reference image located by a motion vector is rescaled (i.e., the reference image's RprConstraintsActiveFlag is true), this means that one or more of the following seven parameters of the reference image differ from the seven parameters of the current image: 1) image width in the luminance samples (pps_pic_width_in_luma_samples), 2) image height in the luminance samples (pps_pic_height_in_luma_samples), 3) left offset of the scaling window (pps_scaling_win_left_offset), 4) right offset of the scaling window (pps_scaling_win_right_offset), 5) top offset of the scaling window (pps_scaling_win_top_offset), 6) bottom offset of the scaling window (pps_scaling_win_bottom_offset), and 7) number of subpics minus one (sps_num_subpics_minus1). In this case, it is considered that EIP information cannot be located by the motion vector. Therefore, no EIP information is retrieved and stored.

[0142] In one embodiment, when a reference image located by motion vectors is rescaled, the position of the reference block can be scaled according to a scaling ratio. The scaling ratio is derived based on a scaling window between the current image and an image at the same position. Let the position of the reference block be (x, y), the scaled position of the reference block be (x', y'), and the scaling ratio be R. The scaled position can be (x / R, y / R) or a rounded (x / R, y / R) position. The rounding method used can include, but is not limited to, the following: rounding towards negative infinity, rounding towards positive infinity, rounding towards zero, or taking the nearest integer (e.g., rounding away from zero, rounding to the nearest whole number, etc.).

[0143] In one embodiment, the position located by the motion vector must be located at Figure 14 The reference image 1420 of the current CTU row is located at the same position as the CTU row 1430, where the corresponding block 1410 is indicated. (See image 1420 for reference image 1430.) Figure 14 As shown, if the position located by the motion vector (represented by a small circle) is above the current CTU row, then that position is mapped to the position in the top row of the current CTU row 1430 (represented by a solid dot). If the position located by the motion vector (represented by a small circle) is below the current CTU row, then that position is mapped to the position in the bottom row of the current CTU row (represented by a solid dot). The EIP information of the mapped position is then copied and stored in the current block. Assume the minimum and maximum vertical positions of the current CTU row are Y1 and Y2, respectively. Assume the position located by the motion vector is (Xm, Ym). If Xm < Y1, then the position becomes (Xm, Y1). The EIP information of position (Xm, Y1) is copied to the current block and stored. If Ym > Y2, then the position becomes (Xm, Y2). The EIP information of position (Xm, Y2) is copied to the current block and stored.

[0144] In one embodiment, if the point of origin (POC) distance between the reference image located by the motion vector and the current image is greater than a predefined threshold, the motion vector and the reference block are considered unusable.

[0145] In one embodiment, if the current block is an inter-frame codec or a block vector is available in the current block, the EIP information of the current block can be derived by copying the EIP information of a reference block located by motion vectors or block vectors. For example, as Figure 15 As shown, current block C has available block vectors, and its reference block B has available motion vectors. Block B's EIP information is first copied from block A. Then, block B's EIP information is copied to block C. Therefore, block A's EIP information is propagated to current block C.

[0146] In one embodiment, such as Figure 16As shown, if the current block is not an EIP codec and the current slice / image is a non-intra-frame slice / image, the EIP information of the current block can be derived by copying the EIP information of its corresponding block in the corresponding image. The definition of the corresponding image can be found in the chapter "Inheritance of Temporal Proximity Model Parameters".

[0147] In one sub-implementation, if the POC distance between the co-located image and the current image is greater than a predefined threshold, the operation of copying and storing EIP information from the co-located image will not be performed.

[0148] In one embodiment, when the current block is not an EIP encoding / decoding block, the EIP information derivation process is executed after the current image is encoded / decoded.

[0149] In one embodiment, when multiple types of propagated EIP information are available for the current block, the propagated EIP information stored in the current block is determined according to a set of predefined rules. For example, if both the reference block located by motion vectors and the reference block of the same location block in the same image as the current block have valid EIP information, then the EIP information of the reference block located by motion vectors is copied and stored in the current block. Similarly, the EIP information of the same location block is copied and stored in the current block. Furthermore, after encoding / decoding a block, the EIP information of the reference block located by motion vectors is copied and stored in the current block. After encoding / decoding an image, the EIP information of the same location block is copied and stored in the current block (i.e., the EIP information of the reference block located by motion vectors is replaced).

[0150] For example, if both the reference block located by block vectors and the reference block at the same location in the same image as the current block have valid EIP information, then the EIP information of the reference block located by block vectors is copied and stored in the current block. Similarly, the EIP information of the same-location block is copied and stored in the current block. Furthermore, after encoding / decoding a block, the EIP information of the reference block located by block vectors is copied and stored in the current block. After encoding / decoding an image, the EIP information of the same-location block is copied and stored in the current block (i.e., the EIP information of the reference block located by block vectors is replaced).

[0151] Any of the proposed methods for EIP information propagation described above can be applied independently or in combination. Furthermore, any of the proposed methods described above can be implemented in the encoder and / or decoder. For example, any proposed method can be implemented in the inter-frame prediction module of the encoder and / or decoder. Alternatively, any proposed method can be implemented as a circuit coupled to the inter-frame prediction module of the encoder and / or decoder.

[0152] The proposed EIP information propagation method can be implemented at the encoder or decoder. For example, any of the proposed EIP information propagation methods can be implemented in the intra-frame / inter-frame encoding / decoding module of the decoder (e.g., Figure 1B Intra-frame prediction 150 / MC152 in the encoder or the intra-frame / inter-frame codec module (e.g. Figure 1A This is implemented in intra-frame prediction 110 / inter-frame prediction 112. Any proposed method can also be implemented as a circuit coupled to the intra-frame / inter-frame codec module of the decoder or encoder. However, the decoder or encoder can also use additional processing units to implement the required cross-component prediction processing. Although the intra-frame prediction unit (e.g. Figure 1A Units 110 / 112 and Figure 1B Units 150 / 152 in the diagram are shown as independent processing units, but they may correspond to executable software or firmware code stored on a medium (such as a hard disk or flash memory) for a central processing unit (CPU) or a programmable device (such as a digital signal processor (DSP) or a field programmable gate array (FPGA)).

[0153] Figure 17 A flowchart illustrating an exemplary video encoding / decoding system according to an embodiment of the present invention is provided. This system copies EIP information from a block associated with EIP information and stores the EIP information in the current block for subsequent block access to derive prediction information. The steps shown in the flowchart can be executed as program code at the encoder end on one or more processors (e.g., one or more CPUs). The steps shown in the flowchart can also be implemented in hardware, such as one or more electronic devices or processors arranged to execute the steps in the flowchart. According to the method, in step 1710, input data associated with the current block is received, wherein such input data includes pixel data to be encoded at the encoder end or data associated with the current block to be decoded at the decoder end. In step 1720, the current block is encoded or decoded using a non-EIP mode. In step 1730, one or more reference blocks pointed to by one or more motion vectors or one or more block vectors of the current block are determined. If the one or more reference blocks have target EIP information, then in step 1740 the target EIP information is copied from the one or more reference blocks and stored in the current block, wherein the target EIP information stored in the current block is accessed by one or more subsequent blocks to derive prediction information.

[0154] The flowchart shown is intended to illustrate video encoding and decoding examples according to the present invention. Those skilled in the art can modify each step, rearrange the steps, split the steps, or combine the steps to implement the invention without departing from the spirit of the invention. Specific syntax and semantics are used in this specification to illustrate examples of implementing the invention. Those skilled in the art can implement the invention by replacing these syntax and semantics with equivalent syntax and semantics without departing from the spirit of the invention.

[0155] The foregoing description is intended to enable those skilled in the art to implement the invention according to specific applications and their needs. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein can be applied to other embodiments. Therefore, the invention is not intended to be limited to the specific embodiments shown and described, but should be given the broadest scope consistent with the principles and novel features disclosed herein. In the foregoing detailed description, various specific details have been shown to provide a full understanding of the invention. However, those skilled in the art will understand that the invention can be practiced.

[0156] The embodiments of the present invention described above can be implemented in various hardware, software code, or combinations thereof. For example, one embodiment of the invention may be one or more circuits integrated into a video compression chip, or program code integrated into video compression software, to perform the processing described herein. Another embodiment of the invention may be program code executed on a DSP to perform the processing described herein. The invention may also relate to several functions performed by a computer processor, digital signal processor, microprocessor, or FPGA. These processors can be configured to implement the specific methods embodied in the invention by executing machine-readable software code or firmware code. The software code or firmware code can be developed in different programming languages ​​and different formats or styles. The software code can also be compiled for different target platforms. However, different code formats, styles, and languages ​​of the software code, as well as other configuration codes in order to perform tasks according to the invention, do not depart from the spirit and scope of the invention.

[0157] This invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The examples described are for illustrative purposes only and not for limitation. Therefore, the scope of the invention is indicated by the appended claims rather than the foregoing description. All variations within the meaning and equivalence of the claims should be included within their scope.

Claims

1. A video encoding / decoding method, comprising: Receive input data related to the current block, wherein such input data includes pixel data to be encoded at the encoder end or data related to the current block to be decoded at the decoder end; Encode or decode the current block using a non-extrapolated intra-prediction mode; Determine one or more reference blocks to which one or more motion vectors of the current block or one or more block vectors of the current block point; as well as If the one or more reference blocks have target extrapolation intra-frame prediction information, then such target extrapolation intra-frame prediction information is copied and stored in the current block, wherein such target extrapolation intra-frame prediction information stored in the current block is accessed by one or more subsequent blocks to derive prediction information.

2. The method of claim 1, wherein if the current block is encoded or decoded in an intra-block copy or intra-template matching prediction mode, the one or more block vectors are associated with the current luma block of the current block.

3. The method of claim 1, wherein if the one or more reference blocks located according to the one or more block vectors or the one or more motion vectors are not extrapolated intra-predictive codecs, but first extrapolated intra-predictive information is stored in the one or more reference blocks, then the stored first extrapolated intra-predictive information is used as the target extrapolated intra-predictive information.

4. The method of claim 1, wherein if the one or more reference blocks correspond to a plurality of reference blocks and only one of the plurality of reference blocks has first extrapolated intra-frame prediction information, then the first extrapolated intra-frame prediction information is used as the target extrapolated intra-frame prediction information.

5. The method of claim 1, wherein if a plurality of reference blocks have first extrapolated intra-prediction information, the target extrapolated intra-prediction information is derived by combining all or part of the extrapolated intra-prediction model parameters associated with the plurality of reference blocks.

6. The method of claim 1, wherein if a plurality of reference blocks have first extrapolated intra-prediction information, then according to one or more predefined rules, the first extrapolated intra-prediction information of the target reference blocks of the plurality of reference blocks is copied to the target extrapolated intra-prediction information.

7. The method of claim 6, wherein the reference block of the extrapolated intra-predictive coding is selected as the target reference block of the plurality of reference blocks.

8. The method of claim 6, wherein a reference block of intra-frame coding, inter-frame coding, or intra-block copy coding is selected as the target reference block of the plurality of reference blocks.

9. The method of claim 6, wherein, based on a distance metric, the reference block that is closest to the current block is selected as the target reference block among the plurality of reference blocks.

10. The method of claim 9, wherein the distance metric corresponds to Euclidean distance, Manhattan distance, Minkowski distance, horizontal distance, or vertical distance.

11. The method of claim 6, wherein, based on a distortion metric, a reference block with the smallest distortion relative to the current block is selected as the target reference block of the plurality of reference blocks.

12. The method of claim 11, wherein the distortion metric corresponds to the distortion metric between the predicted sample and the reconstructed sample of the template of the current block.

13. The method of claim 1, wherein if the current block is inter-frame encoded and decoded using bidirectional prediction, and both reference blocks located by the one or more motion vectors of the current block store extrapolated intra-frame prediction information, then one of the reference blocks is selected according to a set of predefined rules.

14. The method of claim 13, wherein the one or more motion vectors of the current block are located at the center or upper left corner of the current block, the motion vector prediction of the current block, or a combination of the motion vector prediction and the motion vector difference of the current block.

15. The method of claim 13, wherein the set of predefined rules includes the dependency of image order counting distances between a reference image associated with the reference block and the current image.

16. The method of claim 13, wherein the set of predefined rules includes the dependency of the quantization parameter values ​​of the reference block.

17. The method of claim 13, wherein the position of the target block located by a motion vector is restricted to the same position within the same codec tree cell row in the reference image of the current codec tree cell row.

18. The method of claim 17, wherein if the position of the target block is above the co-location codec tree unit row, the position is mapped to the top row of the co-location codec tree unit row, and the extrapolated intra-frame prediction information of the mapped position is copied and stored in the current block.

19. The method of claim 17, wherein if the position of the target block is below the co-location codec tree unit row, the position is mapped to the bottom row of the co-location codec tree unit row, and the extrapolated intra-frame prediction information of the mapped position is copied and stored in the current block.

20. A video encoding / decoding device, comprising one or more electronic circuits or processors, configured as follows: Receive input data related to the current block, wherein such input data includes pixel data to be encoded at the encoder end or data related to the current block to be decoded at the decoder end; Encode or decode the current block using a non-extrapolated intra-prediction mode; Determine one or more reference blocks to which one or more motion vectors of the current block or one or more block vectors of the current block point; as well as If the one or more reference blocks have target extrapolation intra-frame prediction information, such target extrapolation intra-frame prediction information is copied and stored in the current block, wherein such target extrapolation intra-frame prediction information stored in the current block is accessed by one or more subsequent blocks to derive prediction information.