Method and apparatus for using bend-based or spread angle-based intra prediction mode in video coding system
By adopting a curved intra prediction model in the video encoding and decoding system, using the local characteristics of the video block, the problem of low encoding efficiency in the prior art is solved, and more efficient video encoding is achieved.
Patent Information
- Application Number
- CN202380032963.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-04-08
- Filing Date
- 2023-02-08
- Publication Date
- 2025-02-07
AI Technical Summary
When existing video encoding and codec systems deal with curved intra prediction, it is difficult to effectively utilize the local characteristics of the video block, resulting in low encoding efficiency.
The curved intra prediction model is used, and the parameters of the curved intra prediction model are derived through the template of the current block or the intra mode deriving on the decoder side are derived, and the parameters of the curved intra prediction model are used to decode the current block. The model includes angle steering parameters and angular velocity parameters to adjust the predicted angle and turn direction.
The encoding efficiency of the video encoding and codec system when processing curved intra prediction is improved, and by more precisely utilizing the local characteristics of the video block, encoding errors are reduced and video quality is improved.
Smart Images

Figure CN119404501A_ABST
Abstract
Description
[0001] Cross-references
[0002] This application is a non-provisional application of and claims priority to U.S. Provisional Patent Application No. 63 / 328,770, filed on April 8, 2022. The entire contents of this U.S. Provisional Patent Application are incorporated herein by reference. Technical Field
[0003] The present invention relates to a video coding system, and in particular to curved intra prediction in a video coding system. Background Art
[0004] Versatile Video Coding (VVC) is the latest international video coding standard jointly developed by the Joint Video Experts Group (JVET) of the ITU-T Video Coding Experts Group (VCEG) and the ISO / IEC Moving Picture Experts Group (MPEG). The standard has been published as an ISO standard: ISO / IEC 23090-3:2021, Information technology - Coded representation of immersive media - Part 3: Versatile video coding, released in February 2021. VVC is an improvement on its predecessor HEVC (High Efficiency Video Coding) by adding more codec tools to improve codec efficiency, and can also handle various types of video sources, including 3D video signals.
[0005] Figure 1A An exemplary adaptive inter / intra video coding system including a loop process is described. For intra prediction, prediction data is derived from previously encoded video data in the current picture. For inter prediction 112, motion estimation (ME) is performed on the encoder side and motion compensation (MC) is performed based on the results of ME to provide prediction data derived from other pictures and motion data. Switch 114 selects intra prediction 110 or inter 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 and subsequent quantization (Q) 120. The transformed and quantized residual is then encoded by 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 packaged with auxiliary 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 underlying image areas). Auxiliary information associated with intra prediction 110, inter prediction 112, and in-loop filter 130 is provided to entropy encoder 122, such as Figure 1AAs shown. When using inter-frame prediction mode, one or more reference pictures must also be reconstructed at the encoder end. Therefore, the transformed and quantized residual is processed by inverse quantization (IQ) 124 and inverse transform (IT) 126 to recover the residual. The residual is 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 a reference picture buffer 134 and used to predict other frames.
[0006] like Figure 1A As shown, the input video data undergoes a series of processes in the coding system. Due to a series of processes, the reconstructed video data from REC128 may be subject to various impairments. Therefore, loop filter 130 is often applied to reconstructed video data before the reconstructed video data is stored in reference picture buffer 134 to improve video quality. For example, deblocking filter (DF), sample adaptive offset (SAO) and adaptive loop filter (ALF) can be used. It may be necessary to merge loop filter information into the bitstream so that the decoder can correctly restore the required information. Therefore, loop filter information is also provided to entropy encoder 122 to be merged into the bitstream. Figure 1A In , a loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in a reference picture buffer 134 . Figure 1A The system in is intended to illustrate an exemplary structure of a typical video encoder. It may correspond to the High Efficiency Video Coding (HEVC) system, VP8, VP9, H.264, or VVC.
[0007] like Figure 1B As shown, the decoder can use similar or identical functional blocks as the encoder, except for transform 118 and quantization 120, because the decoder only needs inverse quantization 124 and inverse transform 126. Instead of entropy encoder 122, the decoder uses entropy decoder 140 to decode the video bitstream into quantized transform coefficients and required encoding information (such as ILPF information, intra-frame prediction information, and inter-frame prediction information). Intra-frame prediction 150 on the decoder side does not need to perform mode search. Instead, the decoder only needs to generate intra-frame prediction based on the intra-frame prediction information received from entropy decoder 140. In addition, for inter-frame prediction, the decoder only needs to perform motion compensation (MC152) based on the inter-frame prediction information received from entropy decoder 140 without motion estimation.
[0008] According to VVC, similar to HEVC, the input picture is divided into non-overlapping square block areas called CTUs (Coding Tree Units). Each CTU can be divided into one or more coding units (CUs) of smaller size. The generated CU partitions can be square or rectangular. In addition, VVC divides CTUs into prediction units (PUs) as units for applying prediction processes such as inter-frame prediction, intra-frame prediction, etc.
[0009] The VVC standard incorporates various new coding tools to further improve the coding efficiency over the HEVC standard. Among the various new coding tools, some coding tools related to the present invention are summarized as follows.
[0010] Use tree structure to divide CTU
[0011] In HEVC, CTUs are divided into CUs using a quadtree (QT) structure represented as a coding tree to accommodate various local characteristics. The decision to encode a picture area using inter-picture (temporal) or intra-picture (spatial) prediction is made at the leaf-CU level. Each leaf-CU can be further partitioned into one, two, or four PUs based on the PU partition type. Within a PU, the same prediction process is applied, and relevant information is transmitted to the decoder on a PU basis. After obtaining the residual block by applying the prediction process based on the PU partition type, the leaf-CU can be divided into transform units (TUs) according to another quadtree structure similar to the coding tree of the CU. One of the key features of the HEVC structure is that it has multiple partition concepts, including CU, PU, and TU.
[0012] In VVC, a quadtree with nested multi-type trees using binary and ternary partitioning structures replaces the concept of multiple partitioning unit types, that is, it removes the separation of CU, PU and TU concepts except for CUs that are too large for the maximum transform length, and supports more flexible CU partition shapes. In the coding tree structure, CU can be square or rectangular. The coding tree unit (CTU) is first partitioned according to a quaternary tree (also called quadtree) structure. Then the quadtree leaf nodes can be further divided into multi-type tree structures. For example Figure 2 As shown, there are four types of splits in the multi-type tree structure, vertical binary split (SPLIT_BT_VER 210), horizontal binary split (SPLIT_BT_HOR 220), vertical ternary split (SPLIT_TT_VER 230), and horizontal ternary split (SPLIT_TT_HOR 240). The multi-type tree leaf node is called a coding unit (CU), and this segmentation will be used for prediction and transform processing without further division unless the CU is too large for the maximum transform length. This means that in most cases, CUs, PUs, and TUs have the same block size in a quadtree with a nested multi-type tree coding block structure. An exception occurs when the maximum supported transform length is less than the width or height of the CU color component.
[0013] Figure 3The signaling mechanism for partition split information in a quadtree with a nested multi-type tree coding tree structure is shown. The coding tree unit (CTU) is regarded as the root of the quadtree and is first divided by the quadtree structure. Each quadtree leaf node (when large enough to allow it) is then further divided by the multi-type tree structure. In the multi-type tree structure, the first flag (mtt_split_cu_flag) is sent to indicate whether the node is further divided; when a node is further divided, the second flag (mtt_split_cu_vertical_flag) is sent to indicate the split direction, and then the third flag (mtt_split_cu_binary_flag) is sent to indicate whether the split is a binary split or a ternary split. Based on the values of mtt_split_cu_vertical_flag and mtt_split_cu_binary_flag, the multi-type tree split mode (MttSplitMode) of a CU is derived, as shown in Table 1.
[0014] Table 1 – Deriving MttSplitMode based on multi-type tree syntax elements
[0015]
[0016] Figure 4 The CTU is shown to be partitioned into multiple CUs with a quadtree and nested multi-type tree coding block structure, where the bold block edges represent quadtree partitions and the remaining edges represent multi-type tree partitions. The quadtree with nested multi-type tree partitions provides a content-adaptive coding tree structure consisting of CUs. The size of the CU can be as large as the CTU or as small as 4×4 in units of luma samples. For the 4:2:0 chroma format, the maximum chroma CB size is 64×64 and the minimum chroma CB size consists of 16 chroma samples.
[0017] In VVC, the maximum supported luma transform size is 64 × 64, and the maximum supported chroma transform size is 32 × 32. When the width or height of the CB is larger than the maximum transform width or height, the CB is automatically split horizontally and / or vertically to meet the transform size limit in that direction.
[0018] The following parameters are defined and specified by the SPS syntax elements for quadtree with nested multi-type tree coding tree scheme.
[0019] –CTU size: the root node size of the quadtree
[0020] –MinQTSize: Minimum allowed quadtree leaf node size
[0021] –MaxBtSize: Maximum allowed binary tree root node size
[0022] –MaxTtSize: Maximum allowed ternary tree root node size
[0023] –MaxMttDepth: The maximum allowed depth of a multi-type tree split from a quad leaf node
[0024] –MinBtSize: The minimum allowed binary tree leaf node size
[0025] –MinTtSize: The minimum allowed ternary tree leaf node size
[0026] In one example of a quadtree with a nested multi-type tree coding tree structure, the CTU size is set to 128×128 luma samples and two corresponding 64×64 blocks of 4:2:0 chroma samples, MinQTSize is set to 16×16, MaxBtSize is set to 128×128, MaxTtSize is set to 64×64, MinBtSize and MinTtSize (width and height) are set to 4×4, and MaxMttDepth is set to 4. Tree partitioning is first applied to the CTU to generate quadtree leaf nodes. The size of the quadtree leaf node can range from 16×16 (i.e., MinQTSize) to 128×128 (i.e., CTU size). If the leaf QT node is 128×128, the binary tree will not be further split because the size exceeds MaxBtSize and MaxTtSize (i.e., 64×64). Otherwise, the quadtree leaf node may be further split by the multi-type tree. Therefore, the quadtree leaf node is also the root node of the multitree, and its multitree depth (mttDepth) is 0. When the multitree depth reaches MaxMttDepth (i.e. 4), it is considered that no further segmentation is required. When the width of the multi-type tree node is equal to MinBtSize and less than or equal to 2*MinTtSize, no further horizontal segmentation is considered. Similarly, when the height of the multi-type tree node is equal to MinBtSize and less than or equal to 2*MinTtSize, no further vertical segmentation is considered.
[0027] In order to allow 64×64 luma blocks and 32×32 chroma blocks pipeline design in the VVC hardware decoder, TT splitting is prohibited when the width or height of the luma coding block is greater than 64, such as Figure 5As shown, block 500 corresponds to a 128x128 luma CU. The CU can be split using vertical binary tree partitioning (510) or horizontal binary tree partitioning (520). The block is split into 4 CUs, each CU is 64x64 in size, and the CU can be further partitioned using partitions including TT. For example, the 64x64 CU in the upper left corner is partitioned using vertical ternary partitioning (530) or horizontal ternary partitioning (540). TT splitting is also prohibited when the width or height of the chroma coding block is greater than 32.
[0028] In VVC, the coding tree scheme supports the ability to have separate block tree structures for luma and chroma. For P and B slices, the luma and chroma CTBs in one CTU must share the same coding tree structure. However, for I slices, luma and chroma can have separate block tree structures. When separate block tree modes are applied, the luma CTB is partitioned into CUs by one coding tree structure, and the chroma CTB is partitioned into chroma CUs by another coding tree structure. This means that a CU in an I slice may consist of coding blocks for the luma component or coding blocks for two chroma components, while a CU in a P or B slice always consists of coding blocks for all three color components unless the video is monochrome.
[0029] Virtual Pipeline Data Units (VPDU)
[0030] A Virtual Pipeline Data Unit (VPDU) is defined as a non-overlapping unit in a picture. In a hardware decoder, consecutive VPDUs are processed simultaneously by multiple pipeline stages. In most pipeline stages, the VPDU size is roughly proportional to the buffer size, so it is important to keep the VPDU size small. In most hardware decoders, the VPDU size can be set to the maximum transform block (TB) size. However, in VVC, ternary tree (TT) and binary tree (BT) partitioning may cause the VPDU size to increase.
[0031] To keep the VPDU size to 64x64 luma samples, the following canonical partitioning restrictions (with syntax signaling modifications) are applied in VTM, as Figure 6 As shown:
[0032] – For CUs with width or height or both width and height equal to 128, TT split is not allowed (e.g. Figure 6 ” in the figure).
[0033] – For 128xNCU with N ≤ 64 (i.e. width equals 128 and height less than 128), horizontal BT is not allowed.
[0034] For Nx128 CUs with N≤64 (i.e., height equal to 128 and width less than 128), vertical BT is not allowed. Figure 6 In the example, the luma block size is 128x128. The dashed line indicates a block size of 64x64. According to the above constraints, examples where partitioning is not allowed are indicated by "X", such as Figure 6 As shown in various examples (610-680).
[0035] Intra-mode coding with 67 intra-prediction modes
[0036] To capture arbitrary edge directions present in natural videos, the number of directional intra modes in VVC is expanded from 33 used in HEVC to 65. New directional modes not present in HEVC are introduced in Figure 7 Depicted as dashed arrows in , planar and DC modes remain unchanged. These more dense directional intra prediction modes apply to all block sizes and luma and chroma intra prediction.
[0037] In VVC, for non-square blocks, several traditional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes.
[0038] In HEVC, each intra-coded block has a square shape and the length of each of its sides is a power of 2. Therefore, no division operation is required to generate the intra predictor using the DC mode. In VVC, blocks can have a rectangular shape, which in general requires the use of a division operation for each block. To avoid the division operation for DC prediction, only the longer sides are used to calculate the average for non-square blocks.
[0039] In order to keep the complexity of the most probable mode (MPM) list generation low, an intra mode coding method with 6 MPMs is used by considering two available adjacent intra modes. The following three aspects are considered to construct the MPM list:
[0040] – Default intra mode
[0041] – Adjacent Intra Mode
[0042] – Intra mode for export.
[0043] A unified 6-MPM list is used for intra blocks, regardless of whether the MRL and ISP coding tools are applied. The MPM list is constructed based on the intra modes of the left and upper neighboring blocks. Assuming that the mode on the left is denoted as Left and the mode of the upper block is denoted as Above, the unified MPM list is constructed as follows:
[0044] – When a neighboring block is not available, its intra mode is set to planar by default.
[0045] – If both Left and Above modes are non-angle modes:
[0046] –MPM list → {plane,DC,V,H,V-4,V+4}
[0047] – If one of the Left and Above modes is an angle mode and the other is a non-angle mode:
[0048] – Set mode Max to the larger mode between Left and Above
[0049] – MPM list → {plane, Max, DC, Max-1, Max+1, Max-2}
[0050] – If Left and Above are both angled and they are different:
[0051] – Set mode Max to the larger mode between Left and Above
[0052] – If the difference between the modes Left and Above is in the range 2 to 62, inclusive
[0053] MPM list → {Plane,Left,Above,DC,Max-1,Max+1}
[0054] -otherwise
[0055] MPM list → {Plane,Left,Above,DC,Max-2,Max+2}
[0056] – If Left and Above are both angled and they are the same:
[0057] –MPM list → {plane,Left,Left-1,Left+1,DC,Left-2}
[0058] In addition, the first bin of the MPM index codeword is CABAC context coded. A total of three contexts are used, corresponding to whether the current intra block is MRL enabled, ISP enabled, or a normal intra block.
[0059] In the 6MPM list generation process, pruning is used to remove repeated patterns so that only unique patterns can be included in the MPM list. For entropy coding of the 61 non-MPM patterns, truncated binary code (TBC) is used.
[0060] Wide-angle intra prediction for non-square blocks
[0061] Conventional angular intra prediction directions are defined as clockwise from 45 degrees to -135 degrees. In VVC, several traditional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The replaced modes are signaled using the original mode index, which is remapped to the index of the wide-angle mode after parsing. The total number of intra prediction modes remains unchanged, i.e. 67, and the intra mode encoding method remains unchanged.
[0062] To support these predictions, Fig. 8A and Figure 8B As shown, a top reference with a length of 2W+1 and a left reference with a length of 2H+1 are defined.
[0063] The number of alternative modes in wide-angle direction mode depends on the aspect ratio of the block. The alternative intra prediction modes are shown in Table 2.
[0064] Table 2 – Intra prediction modes replaced by Wide mode
[0065] Aspect Ratio Alternative intra prediction modes W / H==16 Mode 12,13,14,15 W / H==8 Mode 12,13 W / H==4 Mode 2,3,4,5,6,7,8,9,10,11 W / H==2 Mode 2,3,4,5,6,7, W / H==1 none W / H==1 / 2 Mode 61,62,63,64,65,66 W / H==1 / 4 Mode 57,58,59,60,61,62,63,64,65,66 W / H==1 / 8 Mode 55,56 W / H==1 / 16 Mode 53,54,55,56
[0066] like Fig. 9 As shown, in the case of wide-angle intra prediction, two vertically adjacent prediction samples (samples 910 and 912) can use two non-adjacent reference samples (samples 920 and 922). Therefore, a low-pass reference sample filter and edge smoothing are applied to wide-angle prediction to reduce the negative impact of the increased gap Δpα. If the wide-angle mode represents a non-fractional offset, there are 8 modes in the wide-angle mode that meet this condition, namely [-14, -12, -10, -6, 72, 76, 78, 80]. When predicting blocks through these modes, samples in the reference buffer are directly copied without applying any interpolation. With this modification, the number of samples that need to be smoothed is reduced. In addition, it makes the non-fractional modes in the traditional prediction mode and the wide-angle mode have similar designs.
[0067] In VVC, 4:2:2, 4:4:4, and 4:2:0 chroma formats are supported. The chroma derived mode (DM) derivation table for the 4:2:2 chroma format was originally ported from HEVC, expanding the number of entries from 35 to 67 to keep pace with the expansion of intra prediction modes. Since the HEVC specification does not support prediction angles below -135° and above 45°, the luma intra prediction modes are mapped from 2 to 5 to 2. Therefore, the chroma DM derivation table for the 4:2:2 chroma format is updated by replacing some values of the mapping table entries to more accurately convert the prediction angles of the chroma blocks.
[0068] 4-tap interpolation filter and reference sample smoothing
[0069] A four-tap intra interpolation filter is used to improve the directional intra prediction accuracy. In HEVC, a two-tap linear interpolation filter has been used to generate intra prediction blocks in directional prediction modes (i.e., excluding planar and DC predictors). In VVC, two sets of 4-tap IFs (interpolation filters) replace the low-precision linear interpolation in HEVC, one set is a DCT-based interpolation filter (DCTIF) and the other is a 4-tap smoothing interpolation filter (SIF). The DCTIF is constructed in the same way as used for chroma component motion compensation in HEVC and VVC. The SIF is obtained by convolving a 2-tap linear interpolation filter with a [1 2 1] / 4 filter.
[0070] Depending on the intra prediction mode, the following reference sample processing is performed:
[0071] Directional intra prediction modes are classified into one of the following groups:
[0072] – Group A: vertical or horizontal mode (HOR_IDX, VER_IDX),
[0073] – Group B: Directional modes and plane modes representing non-fractional angles (-14, -12, -10, -6, 2, 34, 66, 72, 76, 78, 80),
[0074] – Group C: other direction modes;
[0075] If the directional intra prediction mode is classified as belonging to group A, no filter is applied to the reference sample to generate the prediction sample;
[0076] Otherwise, if the mode falls into group B and the mode is a directional mode, and all of the following conditions are true, then the [1,2,1] reference sample filter may be applied to the reference samples (depending on the MDIS condition) to further copy these filtered values into intra prediction according to the selected direction, but no interpolation filter is applied:
[0077] –refIdx equals 0 (no MRL)
[0078] –TU size greater than 32
[0079] -brightness
[0080] – No ISP blocks
[0081] Otherwise, if the mode is classified as belonging to group C, the MRL index is equal to 0, and the current block is not an ISP block, only the intra reference sample interpolation filter is applied to the reference samples to generate prediction samples that fall into fractional or integer positions between the reference samples according to the selected direction (no reference sample filtering is performed). The interpolation filter type is determined as follows:
[0082] – Set minDistVerHor equal to Min(Abs(predModeIntra-50),Abs(predModeIntra-18))
[0083] – Set nTbS to (Log2(W)+Log2(H))>>1
[0084] – Set intraHorVerDistThres[nTbS] as follows:
[0085]
[0086] – If minDistVerHor is greater than intraHorVerDistThres[nTbS, use SIF for interpolation
[0087] – Otherwise, DCTIF is used for interpolation
[0088] Decoder-side Intra Mode Derivation (DIMD)
[0089] When DIMD is applied, two intra modes are derived from the reconstructed neighboring samples and these two predictions are combined with the planar mode prediction with weights derived from the gradients. DIMD mode is used as an alternative prediction mode and is always checked in high complexity RDO mode.
[0090] To implicitly derive the intra prediction mode of a block, texture gradient analysis is performed on both the encoder and decoder side. This process starts with an empty gradient histogram (HoG) with 65 entries, corresponding to 65 angular modes. The magnitudes of these entries are determined during texture gradient analysis.
[0091] In the first step, DIMD selects a template of T=3 columns and rows from the left and top of the current block, respectively. This area is used as a reference for gradient-based intra prediction mode derivation.
[0092] In the second step, horizontal and vertical Sobel filters are applied to all 3×3 window locations, centered on the pixels in the template midline. At each window location, the Sobel filter computes the pure horizontal and vertical intensities G x and G y . The texture angle of the window is then calculated as:
[0093] angle=arctan(G x / G y ), (1)
[0094] can be converted to one of 65 angular intra prediction modes. Once the intra prediction mode index of the current window is derived as idx, the magnitude of its entry in HoG[idx] is updated by adding:
[0095] ampl=|G x |+|G y | (2)
[0096] Figures 10A-C show examples of the HoG computed after applying the above operations to all pixel locations in the template. Fig. 10A An example of a template 1020 selected for a current block 1010 is illustrated. The template 1020 includes T rows above the current block and T columns to the left of the current block. For intra prediction of the current block, an area 1030 above and to the left of the current block corresponds to a reconstructed area, while an area 1040 below and to the right of the block corresponds to an unavailable area. Fig. 10B An example of T=3 is illustrated and the HoG is calculated for a pixel 1060 in the middle row and a pixel 1062 in the middle column. For example, for pixel 1052, a 3x3 window 1050 is used. Fig. 10C An example of the amplitude (Ampl) calculated based on equation (2) for the angular intra prediction mode as determined from equation (1) is illustrated.
[0097] Once the HoG is calculated, the indices with the two highest histogram bins are selected as the two implicitly derived intra prediction modes for the block and further combined with the planar mode as the prediction for the DIMD mode. Prediction fusion is applied as a weighted average of the three predictors mentioned above. For this purpose, the weight of the plane is fixed to 21 / 64 (~1 / 3). The remaining 43 / 64 (~2 / 3) weights are then shared between the two HoG IPMs, proportional to the amplitude of their HoG bins. Fig.11 An example of the mixing process is shown. Fig.11 As shown, two intra modes (M1 1112 and M2 1114) are selected according to the index of the two highest bars with the histogram bar 1110. Three predictors (Pred1 1140, Pred2 1142, and Pred3 1144) are used to form a hybrid prediction. The three predictors correspond to applying M1, M2, and planar intra modes (1120, 1122, and 1124, respectively) to the reference pixel 1130 to form the corresponding predictor. The three predictors are weighted by corresponding weighting factors (ω1, ω2, and ω3) 1150. The weighted predictors are summed using an adder 1152 to generate a hybrid prediction block 1160.
[0098] In addition, two implicitly derived intra modes are included in the MPM list so that the DIMD process is performed before constructing the MPM list. The primary derived intra mode of a DIMD block is stored with the block and used for MPM list construction for neighboring blocks.
[0099] Template-based Intra Mode Derivation (TIMD)
[0100] Template-based intra mode derivation (TIMD) mode implicitly derives the intra prediction mode of a CU using neighboring templates at the encoder and decoder, instead of signaling the intra prediction mode to the decoder. Fig.12 As shown, the reference samples (1220 and 1222) of the template of each candidate mode are used to generate the prediction samples (1212 and 1214) of the template of the current block 1210. The cost is calculated as the SATD (sum of absolute transform differences) between the prediction samples and the reconstructed samples of the template. The intra prediction mode with the smallest cost is selected as the DIMD mode and used for intra prediction of the CU. The candidate mode can be 67 intra prediction modes as in VVC or extended to 131 intra prediction modes. Typically, MPM can provide clues to indicate the directional information of the CU. Therefore, in order to reduce the intra mode search space and utilize the characteristics of the CU, the intra prediction mode can be implicitly derived from the MPM list.
[0101] For each intra prediction mode in the MPM, the SATD between the predicted and reconstructed samples of the template is calculated. The first two intra prediction modes with the smallest SATD are selected as TIMD modes. These two TIMD modes are fused with weights after applying the PDPC process, and this weighted intra prediction is used to encode the current CU. Positiondependent intra prediction combination (PDPC) is included in the derivation of TIMD modes.
[0102] The costs of the two selection modes are compared to a threshold, and in the test a cost factor of 2 is applied as follows:
[0103] costMode2<2*costMode1.
[0104] Among them, costMode2 is the cost of mode 2, and costMode1 is the cost of mode 1.
[0105] If this condition is true, fusion is applied, otherwise only mode 1 is used. The weight of the mode is calculated based on its SATD cost as follows:
[0106] weight1=costMode2 / (costMode1+costMode2)
[0107] weight2=1-weight1.
[0108] In the present disclosure, a method and apparatus for improving intra prediction mode using TIMD and DIMD are disclosed. Summary of the invention
[0109] A method and apparatus for video decoding are disclosed. According to the method at the decoding end, coded data associated with a current block to be decoded is received. A curved intra prediction model associated with a curved intra prediction mode is determined for the current block, wherein the curved intra prediction model is derived based on a template of the current block or based on a decoder-side intra prediction mode, wherein the decoder-side intra prediction mode is derived using statistics or a histogram of an angle field from a template of the current block. The template includes at least 3 lines in an adjacent area of the current block. The current block is decoded using one or more intra prediction mode candidates including the curved intra prediction mode.
[0110] In one embodiment, one or more model parameters for the curved intra prediction model are derived based on a template of the current block or based on a decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or histograms of an angle field from a template of the current block. In one embodiment, the one or more model parameters include one or more angle steering parameters. In another embodiment, the one or more model parameters also include an angular velocity parameter. In another embodiment, the one or more angle steering parameters include an angle parameter and a steering direction parameter. The steering direction parameter indicates whether the turning direction is right turn vs. left turn, or clockwise turn vs. counterclockwise turn.
[0111] In one embodiment, one or more model parameters for the warped intra prediction model are parsed from the bitstream at the decoder side.
[0112] In one embodiment, syntax is parsed from the bitstream at the decoder side to indicate that the current block is encoded using curved intra prediction mode.
[0113] In one embodiment, a cost of each of a set of curved intra prediction modes is evaluated using a template of a current block, and a target curved intra prediction mode that achieves a minimum cost among the set of curved intra prediction modes is selected to encode or decode the current block, and wherein the cost is evaluated between reconstructed samples of the template and predicted samples of the template derived for each of the set of curved intra prediction modes.
[0114] In one embodiment, the statistics or histogram of the angle field derived from the template of the current block is used to determine the curved intra prediction model.A gradient filter may be applied to the statistics or histogram of the angle field derived from the template of the current block to determine the curved intra prediction model.
[0115] Corresponding methods and devices for encoder side are also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS
[0116] Figure 1A An exemplary adaptive inter / intra video coding system incorporating loop processing is shown.
[0117] Figure 1B Show Figure 1A The corresponding decoder of the encoder in .
[0118] Figure 2 Examples of multi-type tree structures corresponding to vertical binary segmentation (SPLIT_BT_VER), horizontal binary segmentation (SPLIT_BT_HOR), vertical ternary segmentation (SPLIT_TT_VER), and horizontal ternary segmentation (SPLIT_TT_HOR) are shown.
[0119] Figure 3 An example of a signaling mechanism for partition split information in a quadtree with a nested multi-type tree coding tree structure is shown.
[0120] Figure 4 An example of a CTU being partitioned into multiple CUs with a quadtree and nested multi-type tree coding block structure is shown, where bold block edges represent quadtree partitions and the remaining edges represent multi-type tree partitions.
[0121] Figure 5 An example is shown where TT splitting is prohibited when the width or height of the luma coding block is greater than 64.
[0122] Figure 6 Some examples where TT splitting is prohibited when the width or height of the luma coding block is greater than 64 are marked.
[0123] Figure 7 The intra-frame prediction mode adopted by the VVC video coding standard is marked.
[0124] Fig. 8A -B shows blocks that are wider than they are tall ( Fig. 8A ) and blocks that are taller than they are wide ( Figure 8B ) is an example of wide-angle intra prediction.
[0125] Fig. 9 An example of two vertically adjacent prediction samples using two non-adjacent reference samples in case of wide-angle intra prediction is illustrated.
[0126] Fig. 10A An example of a template selected for a current block is illustrated, where the template includes T rows above the current block and T columns to the left of the current block.
[0127] Fig. 10BAn example of T=3 is shown, and the HoG (Histogram of Gradients) is calculated for the pixel in the middle row and the pixel in the middle column.
[0128] Fig. 10C An example of the amplitude (Ampl) of the angular intra prediction mode is shown.
[0129] Fig.11 An example of a blending process is illustrated, where two intra modes (M1 and M2) and a planar mode are selected based on the index with the two highest bins of the histogram bins.
[0130] Fig.12 An example of a Template-based Intra Mode Derivation (TIMD) mode is illustrated, where TIMD implicitly derives the intra prediction mode of a CU using neighboring templates at the encoder and decoder.
[0131] Fig.13 An example of model parameters for curved intra prediction is illustrated, where curved intra prediction for a current block is indicated by a dashed line.
[0132] Fig.14A An example of a curved surface model corresponding to the surface of a parabola is illustrated.
[0133] Fig. 14B An example of a curved surface model corresponding to the surface of a hyperbolic parabola is shown.
[0134] Fig.15 An example of the development angle within a tile is shown, where the picture corresponds to a perspective scene with a vanishing point close to the visible end of the road.
[0135] Fig.16 An example of an "extended angle" intra mode is illustrated, where the prediction angle changes continuously from angle 1 to angle 2 within the current CU.
[0136] Fig.17A -B shows an example of evaluating the cost associated with the expansion angle by adjusting the expansion angle parameters to use an L-shaped template for high CU ( Fig.17A ) and wide CU( Fig. 17B ) to generate prediction samples.
[0137] Fig.18 The figure shows an example of angle field derivation using a linear regression model, where the inner angles are generated from a reference region using DIMD, TIMD, or other methods of the current block.
[0138] Fig.19 A flow chart of an exemplary video decoding system utilizing curved intra prediction according to an embodiment of the present invention is illustrated.
[0139] Fig. 20A flow chart of an exemplary video encoding system utilizing curved intra prediction according to an embodiment of the present invention is illustrated. DETAILED DESCRIPTION
[0140] It will be readily appreciated that the components of the present invention as generally described and illustrated in the figures herein may be arranged and designed in a variety of different configurations. Therefore, the following more detailed description of the embodiments of the systems and methods of the present invention as shown in the figures is not intended to limit the scope of the claimed invention, but is merely representative of selected embodiments of the present invention. References throughout this specification to "one embodiment," "an embodiment," or similar language mean that a particular feature, structure, or characteristic described in conjunction with that embodiment may be included in at least one embodiment of the present invention. Therefore, the phrases "in one embodiment" or "in an embodiment" appearing throughout this specification do not necessarily all refer to the same embodiment.
[0141] In addition, the described features, structures or characteristics may be combined in one or more embodiments in any suitable manner. However, those skilled in the relevant art will recognize that the present invention may be practiced without one or more specific details, or using other methods, components, etc. In other cases, well-known structures or detailed descriptions of operations are not shown or are not shown to avoid obscuring aspects of the present invention. The illustrated embodiments of the present invention will be best understood with reference to the accompanying drawings, in which like parts are represented by like numbers throughout. The following description is intended to be exemplary only and simply illustrates certain selected embodiments of the apparatus and methods consistent with the present invention as claimed herein.
[0142] Method A: Curve Based Angle by Template Estimation
[0143] In this method, it is assumed that the intra prediction angle is curved. Segmentation / content analysis can be applied to the template to estimate the curved intra prediction model. In one embodiment, the encoder can send a mode flag (e.g., indicating that the CU is using curved angle encoding based on TIMD / DIMD). On the decoder side, the decoder can use TIMD / DIMD to derive the parameters of the curved intra prediction model.
[0144] According to one embodiment of the present invention, some model parameters may be defined, such as angle-turning parameters and angular-speed parameters. The angle-turning parameters may include:
[0145] 1. Angle + "turn left" (or counterclockwise),
[0146] 2. Angle + "turn right" (or turn clockwise).
[0147] The angular velocity parameter may include how fast the angle changes. To obtain a curved intra prediction model at the decoder end, it may use a thicker L-template (eg, 10 lines or more) to apply a TIMD-approximation method or a DIMD-approximation method.
[0148] Fig.13 An example of model parameters for curved intra prediction is illustrated. Curved intra prediction for a current block 1310 is indicated by a dashed line 1320. The angle (or approach angle) is indicated by arrow 1312 and the direction of rotation is indicated by arrow 1322.
[0149] For methods like TIMD, it uses the curved intra prediction model to perform / adjust template matching and select the best curved intra prediction model. In the DIMD method, it uses the statistics or histogram of the angle field inside the template (e.g., using a gradient filter to guess the angle field of each sample on the template) to guess the curved intra prediction model.
[0150] In another embodiment, the encoder will decide on the model parameters and send the curved intra prediction model parameters to the decoder.
[0151] Method B: DIMD for curved patterns
[0152] Instead of assuming the planar characteristics of the brightness values at different sampling positions in the current CU according to the original planar mode in VVC, the present invention discloses a more complex brightness (x, y) surface model, where the value at the brightness pixel (x, y) is described by the new model as a function of z = (x, y), and z, x, and y form a plane on the Cartesian coordinate system. For the planar mode of VVC, luma (x, y) is modeled by a function of (x, y), such as z = a*x + b*y, where "a" and "b" depend on the current CU content.
[0153] However, for some large CUs, it is difficult to find content with pure "planar" features. Therefore, we propose a curved-surface form of the "new plane mode". As mentioned above, the surface form can also be described by a function of z = (x, y). However, the surface is not a linear function, but has a nonlinear form, such as a high-order equation. For example, Fig.14A The parabola described by z=x2 / a2+y2 / b2 is shown. Fig. 14BA hyperbolic paraboloid described by z = x2 / a2-y2 / b2 is shown. The surface can be defined in the encoder and the decoder. Although two examples of surfaces are illustrated, the present invention is not limited to these specific examples. For example, the function is not necessarily limited to quadratic surfaces. Other types of formulas with different parameters can also be used. In addition, the center of the surface of the two examples shown is located at the origin of the coordinates. Some offset can be added to the center. The surface can also be scaled, and the CU can only be covered by a portion of the surface.
[0154] In one embodiment, the encoder may derive optimal parameters (e.g., for Fig.14A and Fig. 14B a and b of the examples in, or other model parameters) and send them to the decoder.
[0155] In another embodiment, an L-shaped template can be used to derive parameters on the decoder side. For example, in the absence of parameters from the encoder, the decoder can adjust "a" and "b" to generate prediction samples for an L-shaped region (i.e., an L-shaped neighboring position around the current CU). The decoder then compares the predicted samples with the actual reconstructed samples of the L-shaped region. The measurement can be a SAD (sum of absolute difference) or other distortion matching calculation. The decoder selects a set of parameters that achieves the minimum distortion (e.g., Fig.14A and Fig. 14B 'a' and 'b' in the example) as a decoder-derived parameter set.
[0156] Method C: Spread-Angle Method and Features
[0157] In the traditional angular intra prediction mode of VVC, the prediction angle is a constant angle within the current CU. However, some content may have extended angle characteristics, where the angle is extended within a certain range.
[0158] Fig.15 An example of an extended angle is illustrated within block 1500, where the picture corresponds to a scene with a perspective view near a vanishing point at the visible end of a road. The prediction angle appears to change continuously from left to right within the current CU, as evidenced by the distinct lane lines (1510, 1520, and 1530) and visible texture lines (1540). Therefore, an "extended angle" intra mode will do a better job of predicting such content and may help improve compression efficiency for such content.
[0159] Fig.16Example of the icon "Extended Angle" intra-frame mode. The prediction-angle will be constantly changing within the current CU1600. In this example, angle1 is the starting angle (left), angle2 is the ending angle (right), and there is an expanded angle field containing a[0], a[1], ...a[N], where a[i] represents the i-th angle in the angle field, i=0,...,N. The predicted samples on or around the a[0] arrow will use the corresponding L-neighborhood to reconstruct the samples. For example, the predictors of pA, pB, pC will refer to the samples on the neighboring pixel "L" or some samples on the neighboring pixels around "L".
[0160] In one embodiment, the encoder may derive the optimal parameters (ie, the expansion angle parameters) and send them to the decoder.
[0161] In another embodiment, the decoder can use the L-shaped template to derive parameters in a similar manner to the encoder, thereby eliminating the need to signal the parameters. For example, the decoder can use the following process to derive parameters without sending the parameters from the encoder:
[0162] Adjust the expansion angle parameter to generate prediction samples for L-shaped templates, such as Fig.17A -B.
[0163] Compare the predicted samples with the reconstructed samples in region L. For example, perform a SAD (or other distortion matching) calculation.
[0164] · Keep adjusting the expansion angle parameter to find the minimum cost (eg, minimum SAD). Determine the parameter corresponding to the minimum cost as the decoder derived parameter.
[0165] The decoder can use the determined parameters to derive the extended angle prediction value of the current CU.
[0166] Fig.17A and Fig. 17B An example of a decoder process is shown to derive the spread angle model parameters. Fig.17A In FIG. 1 , an L-shaped template (1710 and 1720) of the current block 1700 is shown, and angle 1 (the starting angle at the bottom), angle 2 (the ending angle at the top), and an extended angle field (a[0], a[1], ... a[N]) are represented by arrows, where angle 1 and angle 2 are two intra-frame prediction modes, and the intra-frame prediction mode of angle 1 is smaller than the angle of intra-frame prediction mode angle 2. Fig. 17B In the figure, the L-shaped template (1760 and 1770) of the current block 1750 is shown, and Angle 1 (the starting angle on the left), Angle 2 (the ending angle on the upper right corner) and the extended angle field (a[0], a[1], … a[N]) are represented by arrows, where Angle 1 and Angle 2 are two intra-frame prediction modes, and the angle of the intra-frame prediction mode of Angle 1 is larger than that of the intra-frame prediction mode of Angle 2.
[0167] In one embodiment, the mode is a sequence-dependent mode. Therefore, a syntax indicating whether the mode is enabled (e.g., an on / off signal) may be included in a sequence header and / or an SPS (sequence parameter set) header and / or a picture header and / or a tile header, etc.
[0168] Method D: DIMD-based intra prediction mode
[0169] This method is similar to the previous method (i.e., the extension angle method) with some modifications. In the previous method, the extension angle parameters can be sent by the encoder or derived using the L-template at the decoder end. In the current method, it is possible to use the adjacent reconstructed intra-frame angles as references to derive the extension angle parameters.
[0170] For example, according to this method, we can refer to the (reconstructed) intra-frame angle of the left neighboring CU to derive angle 1 and the (reconstructed) intra-frame angle of the upper right neighboring CU to derive angle 2, as shown in Fig. 17B The expansion angle parameters can be derived from Angle 1 and Angle 2.
[0171] Method E: Angle Field Linear Regression Model
[0172] According to this method, more lines (more lines in the L-neighboring area) are referenced to predict the angle field linear model. For example, multiple angle fields on the L-neighboring area are referenced (using TIMD or DIMD similar methods) to obtain the angle field based on the L-neighboring area template, and the model parameters are derived using a linear regression method. It is assumed that there is a linear model for the intra-frame angle in the current CU (the angle field changes linearly).
[0173] Fig.18 An example of using a linear regression model to derive an angle field is shown in FIG. In the first step, for the current block 1800, multiple intra-frame angles (such as Fig.18 ). The linear regression model is derived from an angle field (i.e., multiple angles) with an initial angle (angle_start) 1810 according to:
[0174] Angle_in_CU(x,y)=angle_start+x*A+y*B+offset
[0175] In the above formula, angle_start is the intra-frame prediction mode, which is used for samples in the diagonal direction that intersects the upper left corner of the current block. A is a scaling parameter used to control the increase or decrease of the scaling ratio of the intra-frame prediction mode in the horizontal direction. B is a scaling parameter that controls the increase or decrease of the intra-frame prediction mode in the vertical direction. Offset can be 0, a positive value, or a negative value.
[0176] After deriving the linear model, we can derive the intra angle vector field and use it for intra prediction.
[0177] Any of the aforementioned proposed methods may be implemented in an encoder and / or a decoder. For example, any of the proposed methods may be implemented in a decoder frame (e.g. Figure 1B Intra-frame prediction 150) / inter-frame coding module, motion compensation module (e.g. Figure 1B Alternatively, any of the proposed methods can be implemented as an intra-frame coupled to the encoder (e.g., Figure 1A Intra-frame prediction 110) / inter-frame coding module and / or motion compensation module (e.g., Figure 1B MC112 in ), the merge candidate induction module of the encoder.
[0178] Fig.19 A flowchart of an exemplary video decoding system using curved intra prediction according to an embodiment of the present invention is illustrated. The steps shown in the flowchart can be implemented as program code that can be executed on one or more processors (e.g., one or more CPUs) on the encoder side. The steps shown in the flowchart can also be implemented based on hardware, such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to the method, in step 1910, encoded data associated with a current block to be decoded is received on the decoder side. In step 1920, a curved intra prediction model associated with a curved intra prediction mode is determined for the current block, wherein the curved intra prediction model is associated with the curved intra prediction mode. The intra prediction model is derived based on a template of the current block or based on a decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or histograms of an angle field derived from a template of the current block, and wherein the template includes at least 3 lines in a neighboring area of the current block. In step 1930, one or more intra prediction mode candidates including the curved intra prediction mode are used to decode the current block.
[0179] Fig. 20 A flowchart of an exemplary video encoding system using curved intra prediction according to an embodiment of the present invention is illustrated. According to the method, input data associated with a current block is received in step 2010, wherein the input data includes pixel data of the current block to be encoded on the encoder side. In step 2020, a curved intra prediction model associated with a curved intra prediction mode is derived based on a template of the current block or based on a decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or a histogram of an angle field derived from a template of the current block. The template includes at least 3 lines in adjacent areas of the current block. In step 2030, the current block is encoded using one or more intra prediction mode candidates including the curved intra prediction mode.
[0180] The flowchart shown is intended to illustrate an example of video encoding according to the present invention. Without departing from the spirit of the present invention, those skilled in the art may modify each step, rearrange the steps, split the steps, or combine the steps to implement the present invention. In the present disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. Without departing from the spirit of the present invention, those skilled in the art may implement the present invention by replacing syntax and semantics with equivalent syntax and semantics.
[0181] The above description is provided to enable those of ordinary skill in the art to practice the present invention provided in the context of a specific application and its requirements. Various modifications to the described embodiments will be apparent to those skilled in the art, and the general principles defined herein may be applied to other embodiments. Therefore, the present invention is not intended to be limited to the specific embodiments shown and described, but to conform to the widest scope consistent with the principles and novel features disclosed herein. In the above detailed description, various specific details are illustrated to provide a thorough understanding of the present invention. However, those skilled in the art will appreciate that the present invention may be implemented.
[0182] The embodiments of the present invention as described above can be implemented in various hardware, software codes or a combination of the two. For example, one embodiment of the present invention can be one or more circuits integrated into a video compression chip or a program code integrated into the video compression software to perform the processing described herein. The embodiments of the present invention can also be a program code to be executed on a digital signal processor (DSP) to perform the processing described herein. The present invention can also be related to many functions performed by a computer processor, a digital signal processor, a microprocessor or a field programmable gate array (FPGA). These processors can be configured to perform specific tasks according to the present invention by executing machine-readable software codes or firmware codes that define the specific methods embodied by the present invention. 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, the different code formats, styles and languages of the software code and other ways of configuring the code to perform tasks according to the present invention will not depart from the spirit and scope of the present invention.
[0183] The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples should be considered in all respects as illustrative and not restrictive. Therefore, the scope of the present invention is indicated by the appended claims rather than by the foregoing description. All changes that fall within the meaning and range of equivalents of the claims should be included within their scope.
Claims
1. A video decoding method, the method comprising: Receiving, at a decoder side, encoded data associated with a current block to be decoded; determining a curved intra prediction model associated with a curved intra prediction mode for a current block, wherein the curved intra prediction model is derived based on a template of the current block or based on the decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or a histogram of an angle field derived from the template of the current block, and wherein the template comprises at least 3 lines in a neighboring area of the current block; as well as The current block is decoded using one or more intra prediction mode candidates including the curved intra prediction mode.
2. The method according to claim 1, characterized in that One or more model parameters of the curved intra prediction model are determined based on a template of the current block or based on a decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or a histogram of an angle field derived from a template of the current block.
3. The method according to claim 2, characterized in that The one or more model parameters include one or more angular steering parameters.
4. The method according to claim 3, characterized in that The one or more model parameters also include an angular velocity parameter.
5. The method according to claim 3, characterized in that: The one or more angular steering parameters include an angle parameter and a steering direction parameter.
6. The method according to claim 5, characterized in that The turning direction parameter indicates whether the turning direction is right turn or left turn, or clockwise turn or counterclockwise turn.
7. The method according to claim 2, characterized in that The one or more model parameters include an angular velocity parameter.
8. The method according to claim 1, characterized in that One or more model parameters for the curved intra prediction model are parsed from a bitstream.
9. The method according to claim 1, characterized in that: The decoder side parses the bit stream to determine whether the current block adopts the syntax of curved intra-frame prediction coding.
10. The method according to claim 1, characterized in that A cost of each of a set of curved intra prediction modes is evaluated using a template of the current block, and a target curved intra prediction mode that achieves a minimum cost is selected among the set of curved intra prediction modes to encode or decode the current block, wherein the cost is evaluated between reconstructed samples of the template and predicted samples of the template derived for each of the set of curved intra prediction modes.
11. The method according to claim 1, characterized in that: The statistics or histogram of the angle field derived from the template of the current block is used to determine the curved intra prediction model.
12. The method according to claim 11, characterized in that A gradient filter is applied to the statistics or histogram of the angle field derived from the template of the current block to determine a curved intra prediction model.
13. A video encoding method, the method comprising: Receiving input data associated with a current block, wherein the input data comprises pixel data of the current block to be encoded at an encoder side; determining a curved intra prediction model associated with a curved intra prediction mode of the current block based on a template of the current block or based on a decoder-side intra mode derived using statistics or a histogram of an angle field derived from the template of the current block, wherein the template includes at least 3 lines in a neighboring area of the current block; as well as The current block is encoded using one or more intra prediction mode candidates including the curved intra prediction mode.
14. The method according to claim 13, characterized in that At the encoder side, syntax is sent in the bitstream to indicate whether the current block is encoded using the curved intra prediction mode.
15. The method according to claim 13, characterized in that One or more model parameters of a curved intra prediction model are signaled in a bitstream comprising encoded data associated with the current block.
16. The method according to claim 13, characterized in that A cost of each of a set of curved intra prediction modes is evaluated using a template of the current block, and a target curved intra prediction mode that achieves a minimum cost is selected among the set of curved intra prediction modes to encode or decode the current block, and wherein the cost is evaluated between reconstructed samples of the template and predicted samples of the template derived for each of the set of curved intra prediction modes.
17. The method according to claim 13, characterized in that The statistics or histogram of the angle field derived from the template of the current block is used to determine the curved intra prediction model.
18. An apparatus for video decoding, the apparatus comprising one or more electronic devices or processors arranged to: Receiving, at a decoder side, coded data associated with a current block to be decoded; determining a curved intra prediction model associated with a curved intra prediction mode for a current block, wherein the curved intra prediction model is based on a template of the current block or based on a decoder-side intra mode, wherein the decoder-side intra mode is derived using statistics or a histogram of an angle field from the template of the current block, and wherein the template comprises at least 3 lines in a neighboring area of the current block; and The current block is decoded using one or more intra prediction mode candidates including a curved intra prediction mode.
19. An apparatus for video encoding, the apparatus comprising one or more electronic devices or processors arranged to: Receiving input data associated with a current block, wherein the input data includes pixel data of the current block to be encoded at an encoder side; Determining a curved intra prediction model associated with a curved intra prediction mode of a current block based on a template of the current block or based on a decoder-side intra mode derived using statistics or a histogram of an angle field derived from the template of the current block, wherein the template includes a plurality of lines in a neighboring area of the current block, and the number of the plurality of lines is greater than 3; and The current block is encoded using one or more intra prediction mode candidates including a curved intra prediction mode.