Method and apparatus of constraints of inheritance information for intra merge mode for mixed modes
The method addresses the challenge of managing coding information across resampled reference pictures by deriving inheritance information from previous blocks, enhancing coding efficiency and prediction accuracy in video encoding and decoding.
Patent Information
- Application Number
- PCT/CN2025/074837
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-01
- Filing Date
- 2025-01-24
- Publication Date
- 2025-08-07
AI Technical Summary
Current video coding methods struggle to efficiently manage inheritance of coding information across pictures with different resolutions, particularly when reference pictures are resampled, limiting the utilization of advanced intra prediction tools.
A method and apparatus for video encoding and decoding that involves deriving inheritance information from previous coded blocks in a reference picture, using a candidate list to generate prediction data for current blocks, even when the reference picture is rescaled, by employing techniques such as DIMD, TIMD, MRL, and EIP.
Enhances coding efficiency by allowing flexible and efficient inheritance of information across pictures with different resolutions, improving prediction accuracy and reducing computational complexity.
Smart Images

Figure CN2025074837_07082025_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS OF CONSTRAINTS OF INHERITANCE INFORMATION FOR INTRA MERGE MODE FOR MIXED MODES
[0001] CROSS REFERENCE TO RELATED APPLICATION
[0002] This application claims the benefit of U.S. Provisional Application No. 63 / 626,565, filed on January 30th, 2024. Further, this application claims the benefit of U.S. Provisional Application No. 63 / 626,566, filed on January 30th, 2024. Further, this application claims the benefit of U.S. Provisional Application No. 63 / 627,164, filed on January 31st, 2024. Further, this application claims the benefit of U.S. Provisional Application No. 63 / 627,840, filed on February 1st, 2024. The contents of these applications are incorporated herein by reference.BACKGROUND OF THE INVENTION1. FIELD OF THE INVENTION
[0003] The present disclosure relates to video coding technology, and more particularly to methods and apparatus for video encoding and decoding involving reference picture resampling.
[0004] 2. DESCRIPTION OF THE PRIOR ART
[0005] Video coding standards support various intra prediction modes for encoding blocks within a picture. These intra prediction modes include conventional angular modes, where reconstructed samples from neighboring blocks are used as references to predict the current block. Some standards also include advanced intra prediction tools.
[0006] Reference picture resampling (RPR) allows pictures to be encoded at different resolutions within a video sequence. When RPR is enabled, a reference picture may have different dimensions or scaling parameters compared to the current picture being coded. This creates challenges for prediction tools that reference samples from these resampled pictures.
[0007] For temporal prediction involving resampled reference pictures, scaling operations need to be applied to properly align sample positions between pictures of different resolutions. The scaling process depends on parameters such as picture dimensions and scaling window offsets. Similar considerations apply when inheriting coding information from resampled reference pictures.
[0008] Current methods for handling resampled reference pictures in video coding may be limited in their ability to efficiently utilize advanced intra prediction tools. Additional techniques for managing inheritance of coding information across pictures with different resolutions could provide improved coding efficiency.SUMMARY OF THE INVENTION
[0009] An embodiment provides a method of video processing in a video coding system for encoding or decoding a video. The method comprises receiving input data associated with a current block of a current picture in the video, wherein the current block is encoded or decoded in an intra mode, and a reference picture corresponds to the current picture according to one or more pre-defined rules. The method further comprises determining if the reference picture corresponding to the current picture is rescaled, deriving inheritance information from a previous coded block in the reference picture based on the determining result, and encoding or decoding the current block based on a candidate list comprising the inheritance information. When the inheritance information is selected to encode or decode the current block, prediction data of the current block is generated based on the inheritance information.
[0010] An embodiment provides an apparatus of video processing in a video coding system for encoding or decoding videos. The apparatus comprises one or more electronic circuits configured to receive input data associated with a current block of a current picture in the video, determine if a reference picture corresponding to the current picture is rescaled, derive inheritance information from a previous coded block in the reference picture based on the determining result, and encode or decode the current block based on a candidate list comprising the inheritance information. The current block is encoded or decoded in an intra mode. The reference picture corresponds to the current picture according to one or more pre-defined rules. When the inheritance information is selected to encode or decode the current block, prediction data of the current block is generated based on the inheritance information.
[0011] These and other objectives of the present invention will no doubt become obvious to those of ordinary skill in the art after reading the following detailed description of the preferred embodiment that is illustrated in the various figures and drawings.BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 illustrates an example of template-based multiple reference line intra prediction according to the embodiments.
[0013] FIG. 2 illustrates an example of spatial candidate derivation according to the embodiments.
[0014] FIG. 3 illustrates an example of chained motion vector prediction according to the embodiments.
[0015] FIG. 4 illustrates an example of inheritance information propagated based on cascaded vector according to the embodiments.
[0016] FIG. 5 illustrates an example of available region of candidates from the current slice / pictures according to the embodiments.
[0017] FIG. 6A and FIG. 6B illustrate an exemplary adaptive Inter / Intra video coding system.
[0018] FIG. 7 illustrates a flow diagram of a method for video processing in the video coding system of FIG. 6A and 6B.DETAILED DESCRIPTION
[0019] This disclosure delves into specific details to provide a comprehensive understanding, but those skilled in the art may practice it without these specifics. Well-known methods, procedures, components, and circuits are not described in detail to maintain clarity. The disclosure primarily focuses on video coding, but it can be applied to other fields as well.
[0020] For terms and techniques not specifically defined or described, reference may be made to various video coding standards (e.g., AVC, HEVC or VVC standards) issued before this specification.
[0021] The following list includes the acronyms used in this disclosure: RPR: Reference Picture Resampling DIMD: Decoder-side Intra Mode Derivation TIMD: Template-based Intra Mode Derivation TMRL: Template-based Multiple Reference Line EIP: Extrapolation Intra Prediction HoG: Histogram of Gradient SATD: Sum of Absolute Transformed Differences SGPM: Spatial Geometric Partitioning Mode ISP: Intra Sub-Partition MIP: Matrix-based Intra Prediction MVP: Motion Vector Predictor MVD: Motion Vector Difference BV: Block Vector AR-BVP: Auto-relocated Block Vector Prediction CMVP: Chained Motion Vector Prediction MPM: Most Probable Mode POC: Picture Order Count QP: Quantization Parameter CTU / CTB: Coding Tree Unit / Block CU / CB: Coding Unit / Block PU / PB: Prediction Unit / Block TU / TB: Transform Unit / Block IBC: Intra Block Copy IntraTMP: Intra Template Matching Prediction AMVP: Advanced Motion Vector Prediction VVC: Versatile Video Coding
[0022] 1 Related Art
[0023] 1.1 Intra mode coding with 67 intra prediction modes
[0024] In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.
[0025] 1.2 Intra mode coding
[0026] The most probable mode (MPM) list is generated by considering two available neighboring intra modes.
[0027] 1.3 Decoder side intra mode derivation (DIMD)
[0028] Two intra modes are derived from the reconstructed neighbor samples (template) , and those two predictors are combined with the planar mode predictor with the weights derived from the gradients.
[0029] A texture gradient analysis is performed at both encoder and decoder. This process starts with an empty Histogram of Gradient (HoG) with 65 entries, corresponding to the 65 angular modes. Amplitudes of these entries are determined during the texture gradient analysis.
[0030] 1.4 Template-based intra mode derivation (TIMD)
[0031] This mode implicitly derived the intra prediction mode of a CU by a neighboring template at both encoder and decoder. The prediction samples of the template are generated using the reference samples of the template for each candidate mode. A cost is calculated as the SATD between the prediction and the reconstruction samples of the template. First two intra prediction modes with the minimum SATD are selected as the TIMD modes. These two TIMD modes are fused with the weights derived from the template costs.
[0032] 1.5 An extrapolation filter-based intra prediction (EIP) mode (from JVET-AF0080)
[0033] 1.5.1 Obtaining the EIP filter
[0034] Three EIP filter shapes are proposed.
[0035] 1.5.1.1 Derivation of EIP coefficients (EIP derived modes)
[0036] The decoder decodes the relevant syntax elements to determine the selected type of reconstructed area and the filter shape for the current block. The selected filter moves in the selected reconstructed area either horizontally or vertically with a one-pixel step to construct the auto-correlation matrix and the cross-correlation vector. The calculation of coefficients following the method for CCCM.
[0037] 1.5.1.2 Inheritance of the EIP filters (EIP merge modes)
[0038] The filter shape and the filter coefficients can be inherited from the previous decoded blocks with EIP or EIP merge mode. The EIP merge list includes spatial adjacent and non-adjacent candidates, temporal candidates, and history candidates.
[0039] 1.5.2 Prediction of the current block
[0040] The EIP mode generates prediction values from the top-left position to the bottom-right position by a diagonal prediction order.
[0041] 1.6 Template-based multiple reference line intra prediction
[0042] Template-based multiple reference line intra prediction (TMRL) mode combines reference line and prediction mode together and uses a template matching method to construct a list of candidate combinations. An index to the candidate combination list is signalled.
[0043] The extended reference line starts from reference line 1. Reference line 0 is used for template matching. The SAD costs (TMRL costs) over the template area (see FIG. 1) are calculated between the predictions (generated by 50 combinations) and the reconstructions. The 20 combinations with the least SAD cost are selected in an ascending order to form the TMRL candidate list.
[0044] 1.7 Inter prediction (More details in JVET-T2002. )
[0045] 1.7.1 Spatial candidate derivation
[0046] Spatial merge candidates are selected among candidates located in the positions depicted in FIG. 2.
[0047] 1.8 JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction
[0048] Auto-relocated block vector prediction (AR-BVP) is introduced into IBC merge / AMVP candidate list construction. A guiding block vector BV0, 1 associated with the current block B0 points to a reference block B1.If B1 has a BV denoted as BV1, 2 pointing to a reference block B2, then BV0, 2 = BV0, 1 + BV1, 2, is defined as the AR-BVP, guided by BV0, 1. Similarly, BV0, n+1 can be derived by BV0, n+1=BV0, n+BVn, n+1=BV0, 1+BV1, 2+…+BVn-1, n+BVn, n+1.
[0049] The length of the AR-BVP trace path can be 1, 2, or infinity.
[0050] The initial guiding block vector BV0, 1 can be an existing BVP in the IBC merge / AMVP candidate list. The AR-BVP candidates are inserted after the HBVP candidates.
[0051] 1.9 JVET-AG0073: Non-EE2: Chained motion vector prediction
[0052] A chained MV prediction (CMVP) is introduced into inter merge candidate list construction.
[0053] CMVP candidates can be derived as the sum of the recursively traced MVs and BVs based on the pre-derived MVs for the inter merge candidate list. For instance, a CMVP candidate, a set of motion vector MVk / m and reference picture RefPick / m can be derived by MVk / m=MVk (0) +BVk (0) +MVk (1) +MVk (2) +…+MVk (m) RefPick / m=RefPick (m)
[0054] where k and m indicate the number of merge index and trace depths of the CMVP.
[0055] MVk (m) is found by checking the existence of MVs or BVs in MV / BV storage corresponding to five positions of the current block as shown in FIG. 3 (the center, top-left, top-right, bottom-left, and bottom-right of the current block) .
[0056] The traceable reference pictures are only within the reference picture lists.
[0057] 2 Proposed method
[0058] In this invention, an intra merge scheme is proposed to improve intra prediction using a merge scheme. The concept of the merge scheme is to inherit (or reference) the information from previous coded blocks and use the inheritance information to predict the current block. Comparing with the traditional intra MPM, the proposed intra merge scheme brings more flexible inheritance flows and / or more efficient inheritance information in the following aspects.
[0059] In the first aspect, in some embodiments specified in Section 2.1 “Inheritance information setting” , with the proposed intra merge scheme, the inheritance information can be any mode information, any sample information, any block information, any model information, and / or any information associated with prediction generation.
[0060] In the second aspect, in some embodiments specified in Section 2.2 “Inheritance block setting” , with the proposed intra merge scheme, the current block can find the previous coded blocks containing the inheritance information through several proposed methods.
[0061] When generating the prediction of the current block coded by the target mode, one or more inheritance blocks are selected from a merge candidate list or among several merge candidates. Then, the inheritance information from the inheritance blocks is used for the target mode to generate prediction. In some embodiments, the inheritance information of each merging candidate can belong to different target modes, that is, mixed modes. For example, the inheritance information of merge candidates can relate to DIMD, and / or TIMD, and / or MRL, and / or EIP. One merge list can contain the merge candidates with different target modes. The current block can be predicted following DIMD, TIMD, MRL or EIP depending on which merge candidate is used. In some embodiments, the inheritance information of each merging candidate belongs to the same target mode. For example, the inheritance information of each merge candidate is related to DIMD, TIMD or MRL, and the current block is predicted following DIMD process. TIMD process, MRL process respectively.
[0062] 2.1 Inheritance information setting
[0063] Here defines the inheritance information for generating prediction of the current block using a target mode. In one embodiment, the inheritance information is from a previous coded block specified in Section 2.2 “Inheritance block setting” . The previous coded block generates the inheritance information of the target mode and / or stores the inheritance information of the target mode. The stored inheritance information of the previous coded block can be referenced by subsequent coding blocks, such as the current block. For example, for each block containing DIMD / TIMD / MRL information (which can be a DIMD / TIMD / MRL-coded block or not a DIMD / TIMD / MRL-coded block) , the DIMD / TIMD / MRL information is stored and / or referenced by the subsequent coding blocks.
[0064] 2.1.1 Inheritance information setting for DIMD
[0065] When target mode is DIMD mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) - (a) one or more histogram (bar) values for the available DIMD intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the highest N histogram bars) suggested by the histogram values; (c) DIMD weighting information and / or fusion or not; (d) reference line information and / or wide-angle conditions.
[0066] 2.1.2 Inheritance information setting for TIMD
[0067] When target mode is TIMD mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) -(a) one or more TIMD cost values for the available TIMD intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs; (c) TIMD weighting information and / or fusion or not; (d) reference line information and / or wide-angle conditions
[0068] 2.1.3 Inheritance information setting for MRL
[0069] When target mode is MRL mode, the inheritance information includes (a) and / or (b) and / or (c) and / or (d) -(a) one or more reference lines jointly with intra prediction modes (such as DC, planar, and / or directional prediction modes) ; (b) the N intra prediction modes (with the smallest N TIMD costs) suggested by the TIMD costs; (c) weighting information and / or fusion or not; (d) reference line information and / or wide-angle conditions.
[0070] 2.1.4 Inheritance information setting for mixed modes
[0071] When the target mode is mixed-mode merge, the inheritance information includes all or any subset of the following items.
[0072] Item1: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.1.
[0073] Item2: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.2.
[0074] Item3: (a) and / or (b) and / or (c) and / or (d) in Section 2.1.3.
[0075] Item4: coding mode (e.g., DIMD-related mode or not, TIMD-related mode or not, MRL-related mode or not, SGPM-related mode or not, ISP-related mode or not, intraTMP-related mode or not, MPM-related mode or not, MIP-related mode or not, EIP-related mode or not, and / or any mode related to a pre-defined intra mode) and / or corresponding information of the coding mode.
[0076] In one embodiment, for item1 and / or item2 and / or item3, the embodiments in Section 2.1.1 and / or 2.1.2 and / or 2.1.3 can be used to obtain the inheritance information.
[0077] In another embodiment, item 4 is included in the inheritance information and / or the coding mode in item4 decides the corresponding information to be further included in the mixed-mode inheritance information. For example, the coding mode in item 4 is MRL-related mode and only the corresponding information from item3 is included in the mixed-mode inheritance information.
[0078] In one embodiment, the coding mode in item4 is from a previous coded block specified in Section 2.2 “Inheritance block setting” . The previous coded block may store the mixed-mode inheritance information. The stored mixed-mode inheritance information of the previous coded block can be referenced by subsequent coding blocks (e.g., the current block) . For example, for each block containing the mixed-mode information, the mixed-mode information is stored and / or referenced by subsequent coding blocks. For example, for each pre-defined unit containing the mixed-mode information, the mixed-mode information is stored and / or referenced by subsequent coding blocks. The unit can be any pre-defined region or k × k grids, where k can be 2, 4, 8, 16, or any pre-defined positive integer.
[0079] In one sub-embodiment, the coding mode is EIP. The previous coded block generates the corresponding EIP inheritance information (e.g., filter shape and / or filter coefficients) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0080] In one sub-embodiment, the coding mode is SGPM (spatial geometric partitioning mode) . This mode generates multiple hypotheses of predictions from different intra prediction modes and combines the hypotheses of predictions to form the final prediction using the weights based on a geometric partitioning line as inter GPM. The previous coded block generates the corresponding SGPM inheritance information (e.g., intra prediction modes and / or partitioning line and / or weights) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0081] In one sub-embodiment, the coding mode is ISP (intra sub-partition) . This mode splits the current block into several sub-partitions and generates prediction of each sub-partition using the reconstructed samples (possibly from the previous sub-partition) adjacent to the current sub-partition as the reference samples. The previous coded block generates the corresponding ISP inheritance information (e.g., one or more intra prediction modes and / or splitting method) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0082] In one sub-embodiment, the coding mode is IntraTMP (intra template matching prediction) . This mode uses template matching to find a displacement (i.e., block vector) to refer a reference block in a pre-defined range of the current picture and generates prediction using the reconstructed samples of the reference block. The previous coded block generates the corresponding intraTMP inheritance information (for example, one or more block vectors) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0083] In another embodiment, the coding mode is MIP (matrix-based intra prediction) . This mode uses a pre-defined matrix and pre-defined adjacent or non-adjacent reference samples to generate the prediction. The previous coded block generates the corresponding MIP inheritance information (for example, one or more matrix indications and / or one or more matrix coefficients of the indicated matrixes and / or block width and / or block height and / or block area and / or block position) and / or stores the mixed-mode inheritance information (coding mode and / or the corresponding information) .
[0084] 2.2 Inheritance block setting
[0085] 2.2.1 Inheritance information from the previous coded blocks
[0086] The inheritance information is obtained from the previous coded blocks.
[0087] In one embodiment, one or more candidates of spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates provide the inheritance information from the previous coded blocks.
[0088] In one embodiment, a merge candidate list, containing inheritance information, is built for the current block. Like the inter merge mode candidate list, the merge candidate list includes spatial adjacent candidates and / or non-adjacent candidates, history candidates, temporal candidates, default candidates, or any subset of above-mentioned candidates.
[0089] In one sub-embodiment, after building the merge candidates list, one or more candidates are selected from the list for the current block to use. The selection depends on explicitly signalling an index or implicitly select the one or more (promising) candidates. For example, the first one or more candidates with the smallest costs are selected. For example, the explicit index indicates one or more candidates in the reordered list as the selected candidates.
[0090] 2.2.1.1 Temporal candidates
[0091] The temporal candidates are obtained from the inheritance information stored in one or more previous coded picture. The temporal candidates are obtainable when the current slice / picture is a non-intra slice / picture. In one embodiment, the temporal candidates can be from the block at some pre-defined positions (x′, y′) of the previous coded slices / picture.
[0092] In one sub-embodiment, the pre-defined positions can be determined based on the position, width and height of the current block. For example, if the current block position is at (x, y) and the block size is w\times h. Define the two value sets αx and αy as: αx= {αx1, αx2, αx3, …, αxm} , αxi<αxj if i<j αy={αy1, αy2, αy3, …, αyn}, αyi<αyj if i<j
[0093] All values in αx and αy are positive numbers. The pre-defined positions can be (xmid±αxi×w, ymid±αyi×h) , (xmid±αxi×w, ymid) , (xmid, ymid±αyi×h) the previous coded slices / picture, where For example, the pre-defined positions can be (x±αxi×w, y±αyi×h) ,(x±αxi×w, y) , (x, y±αyi×h) of the previous coded slices / picture.
[0094] In one sub-embodiment, the pre-defined positions can be determined based on the position, and some pre-defined fixed x-y distances. For example, let δx and δy be two fixed positive numbers. The pre-defined positions can be (xmid±αxi×δx, ymid±αyi×δy) , (xmid±αxi×δx, ymid) , (xmid, ymid±αyi×δy) of the previous coded slices / picture. For example, the pre-defined positions can be (x±αxi×δx, y±αyi×δy) , (x±αxi×δx, y) , (x, y±αyi×δy) of the previous coded slices / picture. In one embodiment, the previous coded pictures are among the pictures in the reference lists.
[0095] In one embodiment, the previous coded pictures are the same pictures as the collocated picture of the regular inter merge mode.
[0096] In one embodiment, there can be more than one selected / pre-defined previous coded pictures.
[0097] In one embodiment, the previous coded pictures can be signaled in the picture / slice header. The reference list and the reference index are signaled in the picture / slice header. For example, L0 [0] is signaled. For example, L1[0] is signaled.
[0098] In one embodiment, the previous coded pictures are selected from a picture set with some pre-defined rules. In one embodiment, the previous coded pictures are selected from pictures in the reference lists. The selection can be determined based on POC, and / or POC distance, and / or QP, and / or QP difference. For example, pictures with the smaller POC are selected. For example, the picture with the larger POC is selected. For example, the picture whose POC distance between it and the current picture is the smallest is selected. For example, the picture with the smaller QP is selected. For example, the picture with the larger QP is selected. For example, the picture with smaller QP difference between it and the current picture is selected. For example, the rules mentioned in previous examples can be combined.
[0099] In one embodiment, one picture in the reference list (or called a reference picture) cannot be selected if such picture in the reference list is rescaled, i.e., the RprConstraintsActiveFlag of that picture is true, which means that picture has one or more of the following seven parameters different than that of the current picture:
[0100] 1) the picture width in luma samples (pps_pic_width_in_luma_samples) ;
[0101] 2) the picture height in luma samples (pps_pic_height_in_luma_samples) ;
[0102] 3) the scaling window left offset (pps_scaling_win_left_offset) ;
[0103] 4) the scaling window right offset (pps_scaling_win_right_offset) ;
[0104] 5) the scaling window top offset (pps_scaling_win_top_offset) ;
[0105] 6) the scaling window bottom offset (pps_scaling_win_bottom_offset) ; and
[0106] 7) the number of sub pictures -1 (sps_num_subpics_minus1) .
[0107] In one embodiment, the previous coded picture is the most recently coded I-picture.
[0108] In one embodiment, the rules to select / not select the previous coded pictures described in the paragraphs above can be combined. For example, the picture whose QP is the smallest among the un-scaled pictures in the reference lists is selected.
[0109] In one embodiment, when the selected / pre-defined previous coded pictures are rescaled, temporal candidates are un-available.
[0110] In one embodiment, when the selected / pre-defined previous coded pictures are rescaled, the pre-defined positions can be scaled according to the scaling ratio to derive the final positions which the temporal candidates are from. The scaling ratio is derived based on the scaling window of the current picture and the selected / pre-defined previous coded pictures. 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 (x / R, y / R) after rounding. The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .
[0111] In one embodiment, the previous coded picture is determined based on a motion vector of a neighboring block. The picture is the one the motion vector indicates.
[0112] In one embodiment, the final pre-defined positions are determined based on a motion vector of a neighboring block. The horizontal and vertical displacements (Δx, Δy) are determined based on a motion vector. Assume a set of pre-defined positions are (x1, y1) , (x2, y2) , …, (xN, yN) . The final pre-defined positions can be (x1+Δx, y1+Δy) , (x2+Δx, y2+Δy) , …, (xN+Δx, yN+Δy) .
[0113] In one embodiment, the motion vector can be L0 or L1 motion vector of a neighboring block.
[0114] In one embodiment, the neighboring block is the left block of the current block. In another embodiment, the neighboring block is the above block of the current block.
[0115] In one embodiment, the neighboring block can be at a pre-defined position. For example, the position can be at the A0 position as described in Section 1.7.1 “Spatial candidate derivation” . The pre-defined position can be at A1, B0, B1, B2. If the block at the pre-defined position is not an inter block, no neighboring block is selected.
[0116] In one embodiment, when selecting the neighboring block, there can be a list of pre-defined positions. For example, the positions can be the spatial position described in Section 1.7.1 “Spatial candidate derivation” . The positions are checked according to the list order. For each position, L0 motion vector is checked first, then the L1 motion vector is checked. Or for each position, L1 motion vector is checked first, then the L0 motion vector is checked. The motion vector can be the first available motion vector in the checking order. The motion vector can be the first motion vector whose reference picture is the selected / pre-defined previous coded picture. The motion vector can be the first motion vector whose reference picture is not-rescaled.
[0117] In one embodiment, the horizontal and vertical displacements (Δx, Δy) are derived based on the selected neighboring motion vector. For example, if the reference picture of the selected neighboring motion vector and the selected / pre-defined previous coded picture are the same picture, (Δx, Δy) equal to the neighboring motion vector or neighboring motion vector after rounding For example, if the reference picture of the selected motion vector and the selected / pre-defined previous coded picture are not the same picture, (Δx, Δy) can be (mv_x * (td / tb) , mv_y * (td / tb) ) or (mv_x * (td / tb) , mv_y * (td / tb) ) after rounding, where (mv_x, mv_y) is the selected motion vector, tb is the POC distance between the current picture and the reference picture of the selected motion vector, td is the POC distance between the current picture and the selected / pre-defined previous coded picture
[0118] In one sub-embodiment, the rounding method can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) . The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .
[0119] In one embodiment, the temporal candidates are derived by using reconstructed samples of a block located at pre-defined positions in the selected / pre-defined previous coded picture. The size of the block can be determined by the size of the current block. For example, the size can be the same as that of the current block. The size of the block can be fixed. For example, the size can always be M′N, where M and N are positive integers.
[0120] 2.2.2 Propagated inheritance information
[0121] In one embodiment, one or more inheritance information is derived and stored in the current block. The stored inheritance information can then be referenced by the following coding blocks as merge candidates as described in Section 2.2.1 “Inheritance information from the previous coded blocks” . The inheritance information is derived and stored after encoding / decoding a block or after the encoding / decoding of the current picture.
[0122] In one embodiment, if the current block is coded in target mode or is coded in modes that can derive target mode information, the inheritance information to be stored is the target mode information of the current block.
[0123] In one embodiment, the inheritance information to be stored in the current block can be derived by propagating inheritance information of previous coded blocks to the current block. That is, the inheritance information to be stored in the current block can be derived based on or copied from the inheritance information stored (including the inheritance information previously propagated from other blocks) in the previous coded blocks. Various methods of propagating inheritance information are described in, Section 2.2.2.1 “Inheritance information propagated based on MV” , and Section 2.2.2.2 “Inheritance information propagated based on cascaded vector” .
[0124] In one embodiment, when referencing neighboring blocks to obtain merge candidates, in addition to the inheritance information stored in the neighboring block, more merge candidates can be derived by propagating inheritance information of previous coded blocks to the neighboring block. The methods of deriving / selecting the propagated inheritance information to be stored in the current block, as described in Section 2.2.2.1 “Inheritance information propagated based on MV” , Section 2.2.2.2 “Inheritance information propagated based on cascaded vector” can be used to derive / select propagated inheritance information for the neighboring block.
[0125] In one embodiment, if the current slice / picture is a non-intra slice / picture, the inheritance information to be stored can be derived by copying the inheritance information of a collocated block in a previous coded picture. The previous coded picture and / or the position of the collocated block can be selected / pre-defined with the methods described in Section 2.2.1.1 “Temporal candidates” .
[0126] 2.2.2.1 Inheritance information propagated based on MV
[0127] In one embodiment, if there are motion vectors obtainable at the position of the current block, (e.g., the current block inter-coded) , the inheritance information to be stored can be derived by copying the stored inheritance information of the reference block in a previous coded picture, located by the motion vector. In one embodiment, if the reference block located by the motion vector does not have inheritance information stored, no inheritance information is propagated to be stored in the current block.
[0128] In one embodiment, when the previous coded picture located by the motion vector is rescaled, i.e., the RprConstraintsActiveFlag of the reference picture is true, which means the reference picture has one or more of the following seven parameters different than that of the current picture:
[0129] 1) the picture width in luma samples (pps_pic_width_in_luma_samples) ;
[0130] 2) the picture height in luma samples (pps_pic_height_in_luma_samples) ;
[0131] 3) the scaling window left offset (pps_scaling_win_left_offset) ;
[0132] 4) the scaling window right offset (pps_scaling_win_right_offset) ;
[0133] 5) the scaling window top offset (pps_scaling_win_top_offset) ;
[0134] 6) the scaling window bottom offset (pps_scaling_win_bottom_offset) ; and
[0135] 7) the number of sub pictures -1 (sps_num_subpics_minus1) .
[0136] The motion vector is considered as unavailable and no inheritance information is propagated to be stored in the current block.
[0137] In one embodiment, when the previous coded picture located by the motion vector is rescaled, the position located by the motion vector can be scaled according to the scaling ratio of the rescaled picture. The scaling ratio is derived based on the scaling window of the current picture and the previous coded picture. Let the original position be (x, y) and the scaling ratio be R. The scaled position can be (x / R, y / R) or (x / R, y / R) after rounding. The rounding method used can be but not limited to the following methods: rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to the nearest integer (e.g., rounding away from zero, rounding half up, rounding half down, …) .
[0138] 2.2.2.2 Inheritance information propagated based on cascaded vector
[0139] The cascaded vector is an extension of AR-BVP and CMVP described in Section 1.8 “JVET-AG0091: EE2-1.8: Auto-relocated block vector prediction” and Section 1.9 “JVET-AG0073: Non-EE2: Chained motion vector prediction” respectively.
[0140] In one embodiment, the inheritance information to be stored in the current block can be derived by copying the stored inheritance information of the reference block located by a cascaded vector.
[0141] The cascaded vector is derived as the sum of the recursively traced motion vectors and block vectors based on a base vector. A cascade vector can be derived with the following steps:
[0142] 1) Starting from a base vector.
[0143] For the i-th recursion:
[0144] 2) Locate a block based on a cascaded vector CV (i-1)
[0145] 3) Retrieve a vector from the located block. This vector can be an L0 motion vector, an L1 motion vector or a block vector. Denote this vector as V (i)
[0146] 4) A new cascaded vector is derived as CV (i) = CV (i-1) + V (i) = CV (0) + V (1) + V (2) + …+ V (i)
[0147] The Step 2-4 are repeated for each recursion.
[0148] For the first recursion CV (0) is the base vector.
[0149] For example, as depicted in FIG. 4, the base vector is the L0 motion vector of the current block. Denote the L0 motion vector of the current block as MVL0 (0) . Denote the block vector of the block indicated by MVL0 (0) as BV (0) , and denote the L0 motion vector of the block indicated by BV (0) as MVL0 (1) and so on. The cascaded vector MV_m is then: MV_m=MVL0 (0) +BV (0) +MVL0 (1) +…+MVL0 (m)
[0150] And the reference picture of MVL0_m is: RefPicL0_m=RefPicL0 (m)
[0151] Here m is the trace depth, that is the number of reference picture referenced traced back.
[0152] Cascaded vectors can be the sum of L0 motion vectors, and / or L1 motion vectors and / or block vectors as shown in FIG. 4.
[0153] In one embodiment, if there are motion vector or block vector obtainable in the current block, the base vector used Step 1 can be the motion vector or the block vector of the current block.
[0154] In one embodiment, the vector in Step 3 can be retrieved by checking some pre-defined positions corresponding to the current block. For example, the pre-defined positions can be the 5 positions (the center, top-left, top-right, bottom-left, and bottom-right of the current block) described in Section 1.9 “JVET-AG0073: Non-EE2: Chained motion vector prediction”
[0155] In one embodiment, the vector retrieved in Step 3 can be a motion vector or a block vector.
[0156] In one embodiment, in Step 4, a new cascaded vector is only created if V (i) retrieved in Step 3 is a motion vector. In one embodiment, in Step 4, a new cascaded vector is only created if V (i) retrieved in Step 3 is a block vector. In one embodiment, in Step 4, a new cascaded vector is always created regardless the type of V(i) retrieved in Step 3.
[0157] In one embodiment, for each recursion, multiple new cascaded vectors can be derived at Step 4, if multiple motion vectors and / or multiple block vectors can be retrieved from the block in Step 3. The multiple newly derived cascaded vectors can all be the vector used in Step 2 in the next recursion. For example, assume the block indicated by MVL0 (1) is bi-prediction and has two motion vector MVL0 (2) and MVL1 (2) . Two new cascaded vectors can be derived as MV_1 + MVL0 (2) and MV_1 + MVL1 (2) , where MV_1 = MVL0 (0) +BV(0) + MVL0 (1) . Each new cascaded vector can be fed into the next recursion as the cascaded vector in Step 2. Hence two branches of recursion can start.
[0158] In one embodiment, if the trace depth / number of recursions exceeds a threshold, the recursion stops. In one sub-embodiment, the threshold can be a finite value. For example, the threshold can be 1. In one sub-embodiment, the threshold can be infinite. In one sub-embodiment, the threshold can be pre-defined.
[0159] 2.2.3 The available region of candidates from the current slice / pictures
[0160] To improve coding throughput, encoding / decoding blocks in parallel and reducing the coding dependency of neighboring blocks are desirable, as depicted by FIG. 5.
[0161] The current picture can be partitioned into non-overlapped regions with size M′N. The current block can only inherit spatial adjacent and non-adjacent candidates outside of the region that the current block resides in.As the following figure, for the current block, only the candidates outside of the current region can be inherited.
[0162] In one embodiment, the history-based buffer array is only updated at the end of the coding of each region to ensure that the content of the history-based buffer remains the same to all the blocks in the same region. In one embodiment, M and N can be pre-defined (e.g., 32′32 or 64′64) , a signaled value (e.g., signaled in sequence / picture / slice / tile-level) , a derived value (e.g., depends on the CTU size, or the maximum block size) .
[0163] The term “block” in this invention can refer to TU / TB, CU / CB, PU / PB, pre-defined region, or CTU / CTB. Any combination of the proposed methods in this invention can be applied.
[0164] The proposed methods in this invention can be enabled and / or disabled according to implicit rules (e. g. block width, height, or area) or according to explicit rules (e.g., syntax on block, tile, slice, picture, sps, or pps level) . For example, the proposed method is applied when the block area is smaller / larger than a threshold.
[0165] Any of the foregoing proposed methods can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in an inter / intra / IBC / prediction / transform module of an encoder, and / or an inter / intra / IBC / prediction / transform module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the inter / intra / IBC / prediction / transform module of the encoder and / or the inter / intra / IBC / prediction / transform module of the decoder, so as to provide the information needed by the inter / intra / IBC / prediction / transform module.
[0166] Inter / Intra Video Coding System
[0167] FIG. 6A illustrates an exemplary adaptive Inter / Intra video coding system incorporating loop processing for performing the above-described video coding techniques. For Intra-prediction module 110, the prediction data is derived based on previous coded video data in the current picture. For Inter-prediction module 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of Motion Estimation to provide prediction data derived from other pictures and motion data. A selection switch 114 selects between Intra-prediction module 110 or Inter-prediction module 112, and the selected prediction data is supplied to an Adder 116 to form prediction errors, also called residues. The residues are then processed by Transform module (T) 118 followed by Quantization module (Q) 120. The transformed and quantized residues are then coded by an Entropy Encoder 122 to be included in a video bitstream corresponding to the compressed video data. The bitstream associated with the transform coefficients is then packed with side information such as motion and coding modes associated with Intra-prediction and Inter-prediction, and other information such as parameters associated with loop filters applied to the underlying image area. The side information associated with Intra-prediction module 110, Inter-prediction module 112 and in-loop filter (ILPF) 130, are provided to the Entropy Encoder 122 as shown in FIG. 6A. When an Inter-prediction mode is used, a reference picture or pictures have to be reconstructed at the encoder end as well. Consequently, the transformed and quantized residues are processed by Inverse Quantization module (IQ) 124 and Inverse Transform module (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at a Reconstruction module (REC) 128 to reconstruct video data. The reconstructed video data may be stored in a Reference Picture Buffer 134 and used for prediction of other frames.
[0168] As shown in FIG. 6A, incoming video data undergoes a series of encoding operations in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to these encoding operations. To improve video quality, an in-loop filter 130 is applied to the reconstructed video data before it is stored in the Reference Picture Buffer 134. The in-loop filter 130 may include multiple filtering operations such as a Deblocking Filter (DF) , a Sample Adaptive Offset (SAO) , and an Adaptive Loop Filter (ALF) . Since a decoder needs to apply identical filtering operations, the loop filter information must be incorporated into the bitstream. Therefore, this loop filter information is provided to the Entropy Encoder 122 for incorporation into the encoded bitstream. As illustrated in FIG. 6A, the in-loop filter 130 processes the reconstructed video data before the filtered samples are stored in the Reference Picture Buffer 134. This encoding system architecture shown in FIG. 6A represents an exemplary structure of a typical video encoder, which may be implemented in various video coding standards such as High Efficiency Video Coding (HEVC) , VP8, VP9, Advanced Video Coding (H. 264) , or Versatile Video Coding (VVC) .
[0169] The decoder architecture, as illustrated in FIG. 6B, shares several functional similarities with the encoder but operates in a complementary manner to reconstruct the original video data. Unlike the encoder which requires both Transform module 118 and Quantization module 120 for compression, the decoder only needs Inverse Quantization module 124 and Inverse Transform module 126 to reverse the compression process. In the decoder, the Entropy Decoder 140, replaces the encoder's Entropy Encoder 122. This Entropy Decoder 140 performs the crucial task of interpreting the received video bitstream, extracting both the quantized transform coefficients and essential coding information, including ILPF information, Intra-prediction information, and Inter-prediction information.
[0170] The decoder's Intra-prediction module 150 operates more efficiently than its encoder counterpart since it does not need to perform the computationally intensive mode search process. Instead, it directly generates the Intra-prediction signal by applying the Intra-prediction information received from the Entropy Decoder 140. This information precisely specifies which prediction mode to use, eliminating the need for the extensive mode evaluation process required at the encoder side.
[0171] Similarly, the Inter-prediction process at the decoder is streamlined compared to the encoder. The Motion Compensation module (MC) 152 only needs to execute the motion compensation operation based on the motion vectors and reference picture information received through the Entropy Decoder 140. This is significantly simpler than the encoder's Inter-prediction process, which must perform both motion estimation to find the best motion vectors and motion compensation to generate the prediction signal. The decoder can apply the received motion information to reconstruct the Inter-predicted blocks, accessing the necessary reference picture data from its Reference Picture Buffer 134.
[0172] This asymmetric design is fundamental to video coding systems. It allows for efficient distribution of computational complexity, placing the more demanding operations at the encoder while keeping the decoder relatively simple and efficient.
[0173] Flow Diagram
[0174] FIG. 7 presents a flow diagram of a method 700 of video processing in a video coding system for encoding or decoding a video. The method 700, which is primarily executed by the Intra-prediction module 110 at the encoder side and Intra-prediction module 150 at the decoder side of the aforementioned video coding system, comprises the following detailed steps:
[0175] S702: Receive input data associated with a current block of a current picture in the video;
[0176] S704: Determine if the reference picture corresponding to the current picture is rescaled;
[0177] S706: Derive inheritance information from a previous coded block in the reference picture based on the determining result; and
[0178] S708: Encode or decode the current block based on a candidate list comprising the inheritance information.
[0179] It should be noted that when the inheritance information is selected to encode or decode the current block, prediction data of the current block is generated based on the inheritance information. Also, the current block is encoded or decoded in the intra mode, and the reference picture corresponds to the current picture according to one or more pre-defined rules described in the previous paragraphs.
[0180] In further detail, the process begins with step S702, where the video coding system receives input data associated with a current block of a current picture in the video. At the encoder side, this input data comprises original video samples of the current block, while at the decoder side, it comprises bitstream information containing coded block data. The input data also includes crucial information about reference pictures available for the current block.
[0181] In step S704, the video coding system determines if the reference picture corresponding to the current picture is rescaled. This determination involves checking the RprConstraintsActiveFlag of the reference picture and comparing several key parameters between the current picture and reference picture. These parameters include the picture width and height in luma samples, scaling window offsets (left, right, top, bottom) , and the number of sub-pictures minus one. A reference picture is considered rescaled if any of these parameters differ from the current picture.
[0182] The system then proceeds to step S706, where it derives inheritance information from a previously coded block in the reference picture based on the determination result. When dealing with a rescaled reference picture, the system first calculates the scaling ratio based on the scaling windows of both pictures. It then scales the position of the temporal candidate using this derived ratio before extracting the inheritance information from the scaled position. However, when the reference picture is not rescaled, the system uses the original position to locate the temporal candidate and extracts inheritance information directly from that position.
[0183] Finally, in step S708, the system encodes or decodes the current block based on a candidate list comprising the inheritance information. This step involves constructing a merge candidate list that includes the derived inheritance information. At the encoder side, the best candidate may be selected from the list through rate-distortion optimization, while at the decoder side, a received index may be used to select the proper candidate from the list. The selected inheritance information can then be used to generate prediction data, which may include intra prediction modes, template matching information, multiple reference line information, and weighting parameters for prediction combination.
[0184] Conclusion
[0185] The present invention provides significant technical advancements in video coding technology, particularly in handling reference picture resampling (RPR) with inheritance information. A primary advantage of the invention is its ability to maintain efficient coding performance even when reference pictures have different resolutions from the current picture. By implementing intelligent scaling operations and systematic parameter checking, the invention enables the proper utilization of temporal candidates and inheritance information across pictures of varying resolutions, leading to improved coding efficiency and reduced signaling overhead.
[0186] The invention offers remarkable flexibility in its approach to video coding. It supports multiple types of inheritance information, including decoder-side intra mode derivation (DIMD) , template-based intra mode derivation (TIMD) , template-based multiple reference line (TMRL) , and mixed modes. This flexibility extends to its adaptable scaling mechanisms, which are based on well-defined picture parameters. Furthermore, the invention provides various criteria for candidate selection, including quantization parameter (QP) , picture order count (POC) , and scaling status, allowing for optimized coding decisions.
[0187] From an implementation perspective, the invention offers several practical benefits. It establishes a clear and systematic process for handling rescaled pictures, making it straightforward to integrate into existing video coding frameworks and standards. The invention's region-based restrictions support parallel processing capabilities, enhancing its practical utility in real-world applications. Additionally, the well-defined parameter checking system ensures consistent and reliable operation across different implementation scenarios.
[0188] Quality preservation is another key advantage of the invention. By properly handling scaling operations and inheritance information, the invention maintains high prediction quality even when working with rescaled pictures. This careful handling prevents quality degradation that might otherwise occur when dealing with pictures of different resolutions. The invention successfully preserves the benefits of advanced intra prediction tools across varying picture resolutions, ensuring consistent coding quality throughout the video sequence.
[0189] The invention also delivers significant computational efficiency improvements. By reusing coding information and implementing efficient pruning mechanisms for candidate selection, it reduces the overall computational complexity of the coding process. The invention optimizes memory usage through selective storage of inheritance information and avoids unnecessary operations when pictures are determined to be rescaled. These efficiency gains make the invention particularly valuable for applications dealing with dynamic resolution changes, systems requiring efficient handling of mixed-resolution content, and scenarios where coding efficiency needs to be balanced with implementation complexity.
[0190] Additional Notes
[0191] The terminology employed in the description of the various embodiments herein is intended for the purpose of describing particular embodiments and should not be construed as limiting. In the context of this description and the appended claims, the singular forms "a" , "an" , and "the" are intended to encompass plural forms as well, unless the context clearly indicates otherwise.
[0192] It should be understood that the term "and / or" as used herein is intended to encompass any and all possible combinations of one or more of the associated listed items. Furthermore, it should be noted that the terms "includes, " "including, " "comprises, " and / or "comprising, " when used in this specification, indicate the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.
[0193] The use of ordinal designators like "first, " "second, " and so forth in the specification and claims serves to differentiate between multiple instances of similarly named elements. These designators do not imply any inherent sequence, priority, or chronological order in the manufacturing process or functional relationship between elements. Rather, they are employed solely as a means of uniquely identifying and distinguishing between separate instances of elements that share a common name or description.
[0194] Unless specifically stated otherwise, the term "some" refers to one or more. Various combinations using "at least one of" or "one or more of" followed by a list (e.g., A, B, or C) should be interpreted to include any combination of the listed items, including individual items and multiple items.
[0195] Terms such as "coupled, " "connected, " "connecting, " and "electrically connected" are used synonymously to describe a state of being electrically or electronically linked. When an entity is described as being in "communication" with another entity or entities, it implies the capability of sending and / or receiving electrical signals, which may contain data / control information, regardless of whether these signals are analog or digital in nature.
[0196] This interpretation of terminology is provided to ensure clarity and consistency throughout the specification and claims, and should not be construed as restricting the scope of the disclosed embodiments or the appended claims.
[0197] The various illustrative components, logic, logical blocks, modules, circuits, operations and algorithm processes described in connection with the embodiments disclosed herein may be implemented as electronic hardware, firmware, software, or combinations of hardware, firmware or software, including the structures disclosed in this specification and the structural equivalents thereof. The interchangeability of hardware, firmware and software has been described generally, in terms of functionality, and illustrated in the various illustrative components, blocks, modules, circuits and processes described above. Whether such functionality is implemented in hardware, firmware or software depends upon the particular application and design constraints imposed on the overall system.
[0198] The hardware and data processing apparatus utilized to implement the various illustrative components, logics, logical blocks, modules, and circuits described herein may comprise, without limitation, one or more of the following: a general-purpose single-chip or multi-chip processor, a graphics processing unit (GPU) , a tensor processing unit (TPU) , a neural network processing unit (NPU) , a digital signal processor (DSP) , an application specific integrated circuit (ASIC) , a field programmable gate array (FPGA) , other programmable logic devices (PLDs) , discrete gate or transistor logic, discrete hardware components, any suitable combination thereof. Such hardware and apparatus shall be configured to perform the functions described herein.
[0199] A general-purpose processor may include, but is not limited to, a central processing unit (CPU) , a microprocessor, or alternatively, any conventional processor, controller, microcontroller or state machine. In certain implementations, a processor may be realized as a combination of computing devices. Such combinations may include, for example, a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration as may be suitable for the intended application.
[0200] It is to be understood that in some embodiments, particular processes, operations, or methods may be executed by circuitry specifically designed for a given function. Such function-specific circuitry may be optimized to enhance performance, efficiency, or other relevant metrics for the particular task at hand. The selection of specific hardware implementation shall be determined based on the particular requirements of the application, which may include, inter alia, performance specifications, power consumption constraints, cost considerations, and size limitations.
[0201] In certain aspects, the subject matter described herein may be implemented as software. Specifically, various functions of the disclosed components, or steps of the methods, operations, processes, or algorithms described herein, may be realized as one or more modules within one or more computer programs. These computer programs may comprise non-transitory processor-executable or computer-executable instructions, encoded on one or more tangible processor-readable or computer-readable storage media. Such instructions are configured for execution by, or to control the operation of, data processing apparatus, including the components of the devices described herein. The aforementioned storage media may include, but are not limited to, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium capable of storing program code in the form of instructions or data structures. It should be understood that combinations of the above-mentioned storage media are also contemplated within the scope of computer-readable storage media for the purposes of this disclosure. Various modifications to the embodiments described in this disclosure may be readily apparent to persons having ordinary skill in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of this disclosure. Thus, the claims are not intended to be limited to the embodiments shown herein, but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.
[0202] In certain implementations, the embodiments may comprise the disclosed features and may optionally include additional features not explicitly described herein. Conversely, alternative implementations may be characterized by the substantial or complete absence of non-disclosed elements. For the avoidance of doubt, it should be understood that in some embodiments, non-disclosed elements may be intentionally omitted, either partially or entirely, without departing from the scope of the invention. Such omissions of non-disclosed elements shall not be construed as limiting the breadth of the claimed subject matter, provided that the explicitly disclosed features are present in the embodiment.
[0203] Additionally, various features that are described in this specification in the context of separate embodiments also can be implemented in combination in a single implementation. Conversely, various features that are described in the context of a single implementation also can be implemented in multiple embodiments separately or in any suitable subcombination. As such, although features may be described above as acting in particular combinations, and even initially claimed as such, one or more features from a claimed combination can in some cases be excised from the combination, and the claimed combination may be directed to a subcombination or variation of a subcombination.
[0204] The depiction of operations in a particular sequence in the drawings should not be construed as a requirement for strict adherence to that order in practice, nor should it imply that all illustrated operations must be performed to achieve the desired results. The schematic flow diagrams may represent example processes, but it should be understood that additional, unillustrated operations may be incorporated at various points within the depicted sequence. Such additional operations may occur before, after, simultaneously with, or between any of the illustrated operations.
[0205] Additionally, it should be understood that the various figures and component diagrams presented and discussed within this document are provided for illustrative purposes only and are not drawn to scale. These visual representations are intended to facilitate understanding of the described embodiments and should not be construed as precise technical drawings or limiting the scope of the invention to the specific arrangements depicted.
[0206] In certain implementations, multitasking and parallel processing may prove advantageous. Furthermore, while various system components are described as separate entities in some embodiments, this separation should not be interpreted as mandatory for all embodiments. It is contemplated that the described program components and systems may be integrated into a single software package or distributed across multiple software packages, as dictated by the specific implementation requirements.
[0207] It should be noted that other embodiments, beyond those explicitly described, fall within the scope of the appended claims. The actions specified in the claims may, in some instances, be performed in an order different from that in which they are presented, while still achieving the desired outcomes. This flexibility in execution order is an inherent aspect of the claimed processes and should be considered within the scope of the invention.
[0208] Those skilled in the art will readily observe that numerous modifications and alterations of the device and method may be made while retaining the teachings of the invention. Accordingly, the above disclosure should be construed as limited only by the metes and bounds of the appended claims.
Claims
1.A method of video processing in a video coding system for encoding or decoding a video, comprising:receiving input data associated with a current block of a current picture in the video, wherein the current block is encoded or decoded in an intra mode, and a reference picture corresponds to the current picture according to one or more pre-defined rules;determining if the reference picture corresponding to the current picture is rescaled;deriving inheritance information from a previous coded block in the reference picture based on the determining result; andencoding or decoding the current block based on a candidate list comprising the inheritance information, wherein when the inheritance information is selected to encode or decode the current block, prediction data of the current block is generated based on the inheritance information.2.The method of claim 1, wherein the one or more pre-defined rules comprise not selecting the reference picture when the reference picture corresponding to the current picture is rescaled.3.The method of claim 1, wherein deriving the inheritance information based on the determining result comprises:if the reference picture corresponding to the current picture is not rescaled, derive the inheritance information from pre-defined positions in the reference picture.4.The method of claim 1, wherein deriving the inheritance information based on the determining result comprises:If the reference picture corresponding to the current picture is rescaled, locating a previous coded block in the reference picture based on a scaled position derived according to a pre-defined position and a scaling ratio of the current picture and the reference picture, wherein the scaling ratio is derived based on a scaling window of the current picture and the reference picture; andderiving the inheritance information from the previous coded block.5.The method of claim 4, wherein deriving the scaled position comprises applying rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to a nearest integer.6.The method of claim 1, wherein deriving inheritance information based on determining result comprises identifying the inheritance information as unavailable if the reference picture corresponding to the current picture is rescaled.7.The method of claim 1, wherein the reference picture corresponding to the current picture is determined to be rescaled if at least one of a plurality of parameters of the reference picture is different from a corresponding parameter of the current picture, and the plurality of parameters comprise:a picture width in luma samples, a picture height in luma samples, a scaling window left offset, a scaling window right offset, a scaling window top offset, a scaling window bottom offset, and a number of sub-pictures minus one.8.The method of claim 1, wherein the inheritance information is propagated from a further reference block located using one or more motion vectors or block vectors from the previous coded block in the reference picture.9.The method of claim 8, wherein if the further reference picture corresponding to the reference picture is rescaled, the further reference block is located from the previous coded block in the reference picture using said one or more motion vectors or block vectors based on a scaling ratio of the reference picture and the further reference picture.10.The method of claim 8, further comprising identifying the inheritance information as unavailable if the further reference picture corresponding to the reference picture is rescaled.11.The method of claim 1, wherein the inheritance information comprises histogram values and corresponding intra prediction modes for decoder-side intra mode derivation (DIMD) , template matching costs and corresponding intra prediction modes for template-based intra mode derivation (TIMD) , and / or reference lines with corresponding intra prediction modes for multiple reference line prediction.12.The method of claim 1, wherein the intra mode comprises a plurality of intra coding tools, when one or more target coding tools among the intra coding tools is selected to encode or decode the current block, the inheritance information comprises information corresponding to the target coding tools only.13.An apparatus for video processing in a video coding system for encoding or decoding a video, the apparatus comprising one or more electronic circuits configured to:receive input data associated with a current block of a current picture in the video;determine if a reference picture corresponding to the current picture is rescaled;derive inheritance information from a previous coded block in the reference picture based on the determining result; andencode or decode the current block based on a candidate list comprising the inheritance information;wherein:the current block is encoded or decoded in an intra mode;the reference picture corresponds to the current picture according to one or more pre-defined rules; andwhen the inheritance information is selected to encode or decode the current block, prediction data of the current block is generated based on the inheritance information.14.The apparatus of claim 13, wherein the one or more pre-defined rules comprise not selecting the reference picture when the reference picture corresponding to the current picture is rescaled.15.The apparatus of claim 13, wherein the one or more electronic circuits are further configured to derive the inheritance information from pre-defined positions in the reference picture if the reference picture corresponding to the current picture is not rescaled.16.The apparatus of claim 13, wherein the one or more electronic circuits are further configured to:locate a previous coded block in the reference picture based on a scaled position derived according to a pre-defined position and a scaling ratio of the current picture and the reference picture to derive a scaled position if the reference picture corresponding to the current picture is rescaled; andderive the inheritance information from the previous coded block;wherein the scaling ratio is derived based on a scaling window of the current picture and the reference picture.17.The apparatus of claim 16, wherein deriving the scaled position comprises applying rounding toward negative infinity, rounding toward positive infinity, rounding toward zero, or rounding to a nearest integer.18.The apparatus of claim 13, wherein the one or more electronic circuits are further configured to identify the inheritance information as unavailable if the reference picture corresponding to the current picture is rescaled.19.The apparatus of claim 13, wherein the reference picture corresponding to the current picture is determined to be rescaled if at least one of a plurality of parameters of the reference picture is different from a corresponding parameter of the current picture, the plurality of parameters comprise:a picture width in luma samples, a picture height in luma samples, a scaling window left offset, a scaling window right offset, a scaling window top offset, a scaling window bottom offset, and a number of sub-pictures minus one.20.The method of claim 13, wherein the inheritance information is propagated from a further reference block located using one or more motion vectors or block vectors from the previous coded block in the reference picture.21.The apparatus of claim 20, wherein if the further reference picture corresponding to the reference picture is rescaled, the further reference block is located from the previous coded block in the reference picture using said one or more motion vectors or block vectors based on a scaling ratio of the reference picture and the further reference picture.22.The apparatus of claim 20, wherein the one or more electronic circuits are further configured to identify the inheritance information as unavailable if the further reference picture corresponding to the reference picture is rescaled.23.The apparatus of claim 13, wherein the inheritance information comprises histogram values and corresponding intra prediction modes for decoder-side intra mode derivation (DIMD) , template matching costs and corresponding intra prediction modes for template-based intra mode derivation (TIMD) , and / or reference lines with corresponding intra prediction modes for multiple reference line prediction.24.The apparatus of claim 13, wherein the intra mode comprises a plurality of intra coding tools, when one or more target coding tools among the intra coding tools is selected to encode or decode the current block, the inheritance information comprises information corresponding to the target coding tools only.
Citation Information
Patent Citations
Selective use of alternative interpolation filters in video processing
US20220132111A1
Motion vector (MV) candidate reordering
US20230103767A1
Method, apparatus, and medium for video processing
WO2023131248A1
Methods and devices for candidate derivation for affine merge mode in video coding
WO2023220444A1
Method, apparatus, and medium for video processing
WO2024011126A1