Method and apparatus of video coding
By optimizing OBIC mode calculations through altered neighboring positions and adaptive histogram methods, the method addresses computational inefficiencies in video coding systems, enhancing processing efficiency and reducing redundant calculations.
Patent Information
- Application Number
- PCT/CN2024/140030
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-01-18
- Filing Date
- 2024-12-17
- Publication Date
- 2025-07-24
AI Technical Summary
The existing video coding systems, such as VVC, face challenges in efficiently reducing calculations associated with occurrence histogram derivation in intra prediction, particularly in OBIC modes, leading to increased computational complexity and resource utilization.
The proposed method modifies the OBIC mode by altering neighboring positions and recording the number of neighboring blocks for occurrence calculation, generating OBIC modes based on occurrence information, and optimizing MPM list construction and histogram calculation to reduce redundant calculations.
This approach reduces computational overhead and enhances efficiency by minimizing duplicate calculations in OBIC mode processing, thereby improving video coding performance.
Smart Images

Figure CN2024140030_24072025_PF_FP_ABST
Abstract
Description
METHOD AND APPARATUS OF VIDEO CODINGCROSS REFERENCE TO RELATED APPLICATIONSThe present invention is a non-Provisional Application of and claims priority to U.S. Provisional Patent Application No. 63 / 622,098, filed on January 18, 2024. The U.S. Provisional Patent Application is hereby incorporated by reference in its entirety.FIELD OF THE INVENTIONThe present invention relates to video coding system. In particular, the present invention relates to schemes to reduce calculations involved in occurrence histogram derivation.BACKGROUND AND RELATED ARTVersatile video coding (VVC) is the latest international video coding standard developed by the Joint Video Experts Team (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, published Feb. 2021. VVC is developed based on its predecessor HEVC (High Efficiency Video Coding) by adding more coding tools to improve coding efficiency and also to handle various types of video sources including 3-dimensional (3D) video signals.Fig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing. For Intra Prediction 110, the prediction data is derived based on previously encoded video data in the current picture. For Inter Prediction 112, Motion Estimation (ME) is performed at the encoder side and Motion Compensation (MC) is performed based on the result of ME to provide prediction data derived from other picture (s) and motion data. Switch 114 selects Intra Prediction 110 or Inter-Prediction 112 and the selected prediction data is supplied to Adder 116 to form prediction errors, also called residues. The prediction error is then processed by Transform (T) 118 followed by Quantization (Q) 120. The transformed and quantized residues are then coded 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 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 underlying image area. The side information associated with Intra Prediction 110, Inter prediction 112 and in-loop filter 130, are provided to Entropy Encoder 122 as shown in Fig. 1A. 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 (IQ) 124 and Inverse Transformation (IT) 126 to recover the residues. The residues are then added back to prediction data 136 at Reconstruction (REC) 128 to reconstruct video data. The reconstructed video data may be stored in Reference Picture Buffer 134 and used for prediction of other frames.As shown in Fig. 1A, incoming video data undergoes a series of processing in the encoding system. The reconstructed video data from REC 128 may be subject to various impairments due to a series of processing. Accordingly, in-loop filter 130 is often applied to the reconstructed video data before the reconstructed video data are stored in the Reference Picture Buffer 134 in order to improve video quality. For example, deblocking filter (DF) , Sample Adaptive Offset (SAO) and Adaptive Loop Filter (ALF) may be used. The loop filter information may need to be incorporated in the bitstream so that a decoder can properly recover the required information. Therefore, loop filter information is also provided to Entropy Encoder 122 for incorporation into the bitstream. In Fig. 1A, Loop filter 130 is applied to the reconstructed video before the reconstructed samples are stored in the reference picture buffer 134. The system in Fig. 1A 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.The decoder, as shown in Fig. 1B, can use similar or portion of the same functional blocks as the encoder except for Transform 118 and Quantization 120 since the decoder only needs Inverse Quantization 124 and Inverse Transform 126. Instead of Entropy Encoder 122, the decoder uses an Entropy Decoder 140 to decode the video bitstream into quantized transform coefficients and needed coding information (e.g. ILPF information, Intra prediction information and Inter prediction information) . The Intra prediction 150 at the decoder side does not need to perform the mode search. Instead, the decoder only needs to generate Intra prediction according to Intra prediction information received from the Entropy Decoder 140. Furthermore, for Inter prediction, the decoder only needs to perform motion compensation (MC 152) according to Inter prediction information received from the Entropy Decoder 140 without the need for motion estimation.Intra Mode Coding with 67 Intra Prediction ModesTo capture the arbitrary edge directions presented in natural video, the number of directional intra modes in VVC is extended from 33, as used in HEVC, to 65. The new directional modes not in HEVC are depicted as dotted arrows in Fig. 2, and the planar and DC modes remain the same. These denser directional intra prediction modes apply for all block sizes and for both luma and chroma intra predictions.In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for the non-square blocks.In HEVC, every intra-coded block has a square shape and the length of each of its side is a power of 2. Thus, no division operations are required to generate an intra-predictor using DC mode. In VVC, blocks can have a rectangular shape that necessitates the use of a division operation per block in the general case. To avoid division operations for DC prediction, only the longer side is used to compute the average for non-square blocks.Wide-Angle Intra Prediction for Non-Square BlocksConventional angular intra prediction directions are defined from 45 degrees to -135 degrees in clockwise direction. In VVC, several conventional angular intra prediction modes are adaptively replaced with wide-angle intra prediction modes for non-square blocks. The replaced modes are signalled using the original mode indexes, which are remapped to the indexes of wide angular modes after parsing. The total number of intra prediction modes is unchanged, i.e., 67, and the intra mode coding method is unchanged.To support these prediction directions, the top reference with length 2W+1, and the left reference with length 2H+1, are defined as shown in Fig. 3A and Fig. 3B respectively.The number of replaced modes in wide-angular direction mode depends on the aspect ratio of a block. The replaced intra prediction modes are illustrated in Table 1.Table 1 - Intra prediction modes replaced by wide-angular modesAs shown in Fig. 4, two vertically-adjacent predicted samples (samples 410 and 412) may use two non-adjacent reference samples (samples 420 and 422) in the case of wide-angle intra prediction. Hence, low-pass reference samples filter and side smoothing are applied to the wide-angle prediction to reduce the negative effect of the increased gap Δpα. If a wide-angle mode represents a non-fractional offset. There are 8 modes in the wide-angle modes satisfy this condition, which are [-14, -12, -10, -6, 72, 76, 78, 80] . When a block is predicted by these modes, the samples in the reference buffer are directly copied without applying any interpolation. With this modification, the number of samples needed to be smoothing is reduced. Besides, it aligns the design of non-fractional modes in the conventional prediction modes and wide-angle modes.In VVC, 4: 2: 2 and 4: 4: 4 chroma formats are supported as well as 4: 2: 0. Chroma derived mode (DM) derivation table for 4: 2: 2 chroma format was initially ported from HEVC extending the number of entries from 35 to 67 to align with the extension of intra prediction modes. Since HEVC specification does not support prediction angle below -135° and above 45°, luma intra prediction modes ranging from 2 to 5 are mapped to 2. Therefore, chroma DM derivation table for 4: 2: 2 chroma format is updated by replacing some values of the entries of the mapping table to convert prediction angle more precisely for chroma blocks.Most Probable Mode (MPM) List GenerationTo 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 neighbouring intra modes. The following three aspects are considered to construct the MPM list:a) Default intra modesb) Neighbouring intra modesc) Derived intra modesA unified 6-MPM list is used for intra blocks irrespective of whether MRL and ISP coding tools are applied or not. The MPM list is constructed based on intra modes of the left and above neighbouring block. Suppose the mode of the left is denoted as Left and the mode of the above block is denoted as Above, the unified MPM list is constructed as follows:d) When a neighbouring block is not available, its intra mode is set to Planar by default.e) If both modes Left and Above are non-angular modes:–MPM list → {Planar, DC, V, H, V -4, V + 4}f) If one of modes Left and Above is angular mode, and the other is non-angular:–Set a mode Max as the larger mode in Left and Above–MPM list → {Planar, Max, Max -1, Max + 1, Max ––2, Max + 2}g) If Left and Above are both angular and they are different:–Set a mode Max as the larger mode in Left and Above–Set a mode Min as the smaller mode in Left and Above–If Max –Min is equal to 1:–MPM list → {Planar, Left, Above, Min –1, Max + 1, Min –2}–Otherwise, if Max –Min is greater than or equal to 62:–MPM list → {Planar, Left, Above, Min + 1, Max –1, Min + 2}–Otherwise, if Max –Min is equal to 2:–MPM list → {Planar, Left, Above, Min + 1, Min –1, Max + 1}–Otherwise:–MPM list → {Planar, Left, Above, Min –1, Min + 1, Max –1}h) If Left and Above are both angular and they are the same:–MPM list → {Planar, Left, Left -1, Left + 1, Left –2, Left + 2}Besides, the first bin of the MPM index codeword is CABAC context coded. In total three contexts are used, corresponding to whether the current intra block is MRL enabled, ISP enabled, or a normal intra block.During 6 MPM list generation process, pruning is used to remove duplicated modes so that only unique modes can be included into the MPM list. For entropy coding of the 61 non-MPM modes, a Truncated Binary Code (TBC) is used.Intra Prediction in Enhanced Compression Model (ECM)Decoder Side Intra Mode Derivation (DIMD)When DIMD is applied, up to five intra modes are derived from the reconstructed neighbour samples, and those five predictors are combined with the planar mode predictor with the weights derived from the histogram of gradients as described in JVET-O0449 (Mohsen Abdoli, et al., “Non-CE3: Decoder-side Intra Mode Derivation with Prediction Fusion Using Planar” , Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO / IEC JTC 1 / SC 29 / WG 11, 15th Meeting: Gothenburg, SE, 3–12 July 2019, Document JVET-O0449) . The division operations in weight derivation are performed utilizing the same lookup table (LUT) based integerization scheme used by the CCLM. For example, the division operation in the orientation calculation,Orient=Gy / Gxis computed by the following LUT-based scheme:x = Floor (Log2 (Gx) )normDiff = ( (Gx<< 4) >> x) &15x += (3 + (normDiff ! = 0) ? 1 : 0)Orient = (Gy* (DivSigTable [normDiff] | 8) + (1<< (x-1) ) ) >> x,whereDivSigTable
[0016] = {0, 7, 6, 5 , 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0} .For a block of size W×H, the weight for each of the five derived modes is modified if the above or left histogram magnitudes is twice larger than the other one. In this case, the weights are location dependent and computed as follows.If the above histogram is twice the left, then:If the left histogram is twice the above, then:where wDimdi is the unmodified uniform weight of the DIMD selected as in JVET-O0449, Δi is pre-defined and set to 10.Derived intra modes are included into the primary list of intra most probable modes (MPM) , so the DIMD process is performed before the MPM list is constructed. The primary derived intra mode of a DIMD block is stored with a block and is used for MPM list construction of the neighbouring blocks.Finally, note the region of neighbouring reconstructed samples used for computing the histogram of gradients is modified compared to JVET-O0449 method, depending on reconstructed samples availability. The region of decoded reference samples of current WxH luma CB is extended towards the above-right side if available, up to W additional columns. It is extended towards the bottom-left side if available, up to H additional rows.DIMD Chroma ModeThe DIMD chroma mode uses the DIMD derivation method to derive the chroma intra prediction mode of the current block based on the neighbouring reconstructed Y, Cb and Cr samples in the second neighbouring row and column as shown in Figs. 5A-C for Y, Cb and Cr components (Fig. 5A, Fig. 5B and Fig. 5C) respectively. Specifically, a horizontal gradient and a vertical gradient are calculated for each collocated reconstructed luma sample of the current chroma block, as well as the reconstructed Cb and Cr samples, to build a HoG. Then the intra prediction mode with the largest histogram amplitude values is used for performing chroma intra prediction of the current chroma block.When the intra prediction mode derived from the DIMD chroma mode is the same as the intra prediction mode derived from the DM mode, the intra prediction mode with the second largest histogram amplitude value is used as the DIMD chroma mode. A CU level flag is signalled to indicate whether the proposed DIMD chroma mode is applied.Finally, the luma region of reconstructed samples used for computing the histogram of gradients for chroma DIMD mode is modified compared to JVET-O0449. For a WxH pair of chroma CBs to predict, to build the histogram of gradients associated to the collocated luma CB, the pairs of a vertical gradient and a horizontal gradient are extracted from the second and third lines in this luma CB instead of being extracted from the regular set of DIMD decoded reference samples around this luma CB.Fusion of Chroma Intra Prediction ModesIn ECM, two chroma intra prediction signals can be fused together. One of the two chroma intra prediction signals is predicted using one of the DM mode, DIMD chroma mode and the four default modes (non-LM mode) . The other chroma intra prediction signal is predicted using cross-component linear prediction modes (LM mode) . Two different methods are supported.In the first method, the LM mode is fixed to MMLM_LT mode, and the final predictor is derived as follows:predC (i, j) = (w0×pred0 (i, j) +w1×pred1 (i, j) + (1<< (shift-1) ) ) >>shiftwhere pred0 (i, j) is the predictor obtained by applying the non-LM mode, pred1 (i, j) is the predictor obtained by applying the MMLM_LT mode and predC (i, j) is the final predictor of the current chroma block. The two weights, w0 and w1 are determined by the intra prediction mode of adjacent chroma blocks and shift is set equal to 2. Specifically, when the above and left adjacent blocks are both coded with LM modes, {w0, w1} = {1, 3} ; when the above and left adjacent blocks are both coded with non-LM modes, {w0, w1} = {3, 1} ; otherwise, {w0, w1} = {2, 2} .In the second method, the LM mode can be either MMLM or CCLM mode, and the final predictor is derived as follows:predC (i, j) = α0×pred0 (i, j) + α1×recL′ (i, j) +α2×βwhere pred0 (i, j) is the predictor obtained by applying the non-LM mode, recL′ (i, j) is the set of downsampled reconstructed luma samples at co-located positions and predC (i, j) is the final predictor of the current chroma block. β is a fixed value and is set equal to 512 for 10-bit contents. The three weights, α0, α1 and α2 are derived from the adjacent luma and chroma samples using the same LDL derivation method as in CCCM.For the syntax design, one index is signalled to indicate whether fusion is applied and which method is used as shown in Table 2. It is noted that for I slices, the non-LM mode can be DM mode, DIMD chroma mode and the four default modes. For non-I slices, only DIMD chroma mode is allowed to be fused with LM modes.Table 2. Index signalled for indicating whether fusion is applied and which method being usedSecondary MPMSecondary MPM lists is introduced as described in JVET-D0114. The existing primary MPM (PMPM) list consists of 6 entries and the secondary MPM (SMPM) list includes 16 entries. A general MPM list with 22 entries is constructed first, and then the first 6 entries in this general MPM list are included into the PMPM list, and the rest of entries form the SMPM list. The first entry in the general MPM list is the Planar mode. The remaining entries are composed of the intra modes of the left (L) , above (A) , below-left (BL) , above-right (AR) , and above-left (AL) neighbouring blocks as shown in Fig. 6, the directional modes with added offset from the first two available directional modes of neighbouring blocks, and the default modes.If a CU block is vertically oriented, the order of neighbouring blocks is A, L, BL, AR, AL; otherwise, the order of neighbouring blocks is L, A, BL, AR, AL.A PMPM flag is parsed first, if equal to 1 then a PMPM index is parsed to determine which entry of the PMPM list is selected, otherwise the SPMPM flag is parsed to determine whether to parse the SMPM index or the remaining modes.JVET-AG0141 AHG 12: Occurrence-Based Intra Coding (OBIC)The Occurrence-Based Intra Coding (OBIC) method derives the intra prediction modes of the current block based on the sample-wise occurrence of the intra modes in the spatial neighbourhood of the block. For this, adjacent and non-adjacent spatial neighbouring blocks are checked and the intra prediction modes of the blocks are collected into an occurrence histogram. The occurrence histogram consists of the intra modes and their sample-wise occurrences. The occurrence values are calculated based on the number of samples that are coded in a certain intra prediction mode in that neighbourhood. For example, if a uiWidth × uiHeight block is coded with an IPM mode, the occurrence of the mode in that particular block is calculated as:Histogram [IPM] += uiWidth *uiHeight;where uiWidth and uiHeight are the width and height of a spatial neighbouring block.The occurrences of the existing modes from the spatial neighbourhood blocks are aggregated into the histogram. Fig. 7 shows the non-adjacent spatial neighbouring blocks that are used in OBIC mode’s histogram generation. An example of the histogram of occurrences of IPM modes in the spatial neighbourhood of a CU is shown in Fig. 8.Up to 5 angular modes with the highest occurrence along with the planar mode are selected from the histogram and used for final prediction by blending the prediction of the selected modes.Some blocks, mentioned below, use more than one intra mode for prediction. In such cases, all the intra modes of such blocks are selected and used when creating the OBIC histogram:● DIMD: up to 5 angular modes● TIMD: up to 2 modes● SGPM: 2 modes● OBIC: up to 5 angular modesMoreover, the intra modes of following blocks are not considered when creating the histogram of OBIC mode:● MIP block● IntraTMP block● IBC blockThe blending weights are calculated similar to the DIMD mode, but instead of using gradient values from the template, the occurrence values are used for OBIC. Moreover, the planar mode’s weight is also decided similarly to DIMD mode.The OBIC mode is only used in luma blocks.Bitstream SignallingUsage of the mode is signalled with a CABAC coded PU level flag. The OBIC mode is used as a sub-mode of DIMD and its flag is signalled after DIMD flag.Moreover, the OBIC mode accounts for one additional RD check at the encoder side.JVET-AG0084 DIMD Merge ModeDIMD merge mode includes a step of merging the HoG of neighbouring blocks to derive DIMD information. The DIMD information in the surroundings can be used to derive the merged HoG (MHoG) . The MHoG from up to 13 CUs is used to derive intra prediction modes and weights, as in conventional DIMD. The directional modes and the respective weights corresponding to the five highest amplitudes in the MHoG are selected, and the corresponding predictors are blended as in conventional DIMD. In JVET-AF012 (S. Blasi, I. Zupancic, J. Lainema, “EE2-2.1 DIMD merge, ” JVET-AF0120, October 2023) , a reduced storage version of the DIMD merge is proposed where the five highest amplitudes of the histograms are stored and averaged.In JVET-AF0106 (J. Huo, J. Fan, Z. Zhang, Y. Ma, F. Yang, M. Li, “EE2-related: Non-adjacent spatial candidates for DIMD merge, ” JVET-AF0106, October 2023) , the DIMD merge mode is extended to include up to 31 surrounding CUs to derive the MHoG. Indeed, on top of the original 13 CUs, non-adjacent spatial candidates are considered as in Fig. 7.A new flag is introduced and is signalled just after the DIMD flag if the DIMD merge mode is true.DIMD Merge Mode ListThis contribution proposes to create a DIMD merge list from neighbouring blocks’ DIMD information, which includes:● DIMD information from spatial neighbours (as in Fig. 6) ,● DIMD information from non-adjacent neighbours (as in Fig. 7) ,● DIMD information derived from the MHoG.Two redundancy checks (pruning stage) are applied: one comparing the DIMD merge candidates, and one comparing the DIMD information derived from the current block. Thus, a DIMD merge candidate is added to the DIMD merge list when the associated DIMD information is different from the existing information in DIMD merge candidates and the current block DIMD information.Two additional flags are added conditionally to the DIMD flag, i.e., the DIMD Merge is considered as a sub-mode of DIMD. The two flags are:● The DIMD merge mode flag● The DIMD merge mode index representative of the DIMD merge candidate.DIMD Merge Candidates’ EvaluationDIMD merge is only available as an option if the current block has at least one neighbour coded with DIMD or DIMD merge modes using the same method as proposed in JVET-AE0071 (S. Blasi, I. Zupancic, J. Lainema, “AHG12 -Decoder-side Intra Mode Derivation Merge, ” JVET-AE0071, July 2023) . Besides, the neighbouring positions or neighbouring blocks are extended to include part of the non-adjacent candidates.When the DIMD merge is available, the DIMD merge list candidate is derived both at the encoder and decoder sides. On the encoder side, each candidate is evaluated using an Hadamard pass, then in the RDO loop if the associated Hadamard-based cost is competitive.A DIMD merge candidate may be discarded if the associated cost is not competitive compared to other modes.JVET-AG0078 AHG12: Intra-Prediction Using Merged Histogram of GradientsThis contribution proposes to add a new intra prediction mode, referred to as Merged Intra Mode Derivation (MIMD) , based on the computation of a Merged Histogram of Gradients (MHoG) . Similar to DIMD, up to five MIMD modes are derived from the MHoG and are then blended together. The derivation of the modes and blending weights follows the same process to derive DIMD modes and blending weights from the HoG. But differently than DIMD, the MHoG is not computed directly analysing the template samples, but rather is computed based on information extracted from neighbouring blocks.In particular, a number of N neighbouring blocks is considered. A neighbouring block is considered if it is encoded with at least one directional intra-prediction mode. In case the neighbouring block i is encoded using DIMD or MIMD, then its HoG or MHoG is directly considered as Hi, where Hi (m) refers to the amplitude of directional mode m in the HoG, where m can take values from 0 to M where M is the maximum number of intra-prediction modes. A normalisation process can be used when considering Hi.In case the neighbouring block i is instead encoded using a non-DIMD intra-prediction directional mode m, then an HoG Hi is derived for that neighbouring block, where Hi (k) =0 for k= 0, 1, …M, k≠m and Hi (m) =A, where value A depends on the size of the current block. For neighbouring blocks encoded using SGPM or TIMD where more than one directional intra prediction modes may be available, both directional modes can be considered in the derivation of Hi.Then, the MHoGcan be computed using all the HoGs extracted from available neighbouring blocks as:Finally, the MHoG is used to compute MIMD modes and weights. The directional modes and their weights corresponding to the five highest amplitudes in the MHoG are selected as directional modes and weights for MIMD.Integration in ECMMIMD is signalled as a sub-mode of DIMD. In order to speed-up the encoding process, MIMD is only signalled for blocks with an area larger than 4x4 samples. Also, MIMD is only signalled for blocks that have one immediate neighbour above or on the left that is encoded using DIMD or MIMD. Under these conditions, MIMD is then signalled with a CABAC coded CU level flag. One new CABAC context was included to support coding of the MIMD flag. As a further complexity optimisation, the planar prediction used within the DIMD and MIMD blending process was modified to make use of PDPC. This allows the intra-prediction blocks computed during the SATD stage at the encoder side to be reused to form the DIMD and MIMD final predictors.In the present invention, techniques to reduce the calculations associated with occurrence histogram are disclosed.BRIEF SUMMARY OF THE INVENTIONA method and apparatus for video coding are disclosed. According to this method, input data associated with a current block is received, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. During occurrence calculation for OBIC (Occurrence-Based Intra Coding) based on a neighbouring region of the current block, neighbouring positions are changed according to one or more conditions, or a total number of neighbouring blocks in the neighbouring region used for the occurrence calculation is recorded. One or more OBIC modes are generated based on occurrence information associated with the neighbouring blocks in the neighbouring region. In one embodiment, a target MPM (Most Probable Modes) list comprising said one or more OBIC modes for the current block is generated. In one embodiment, the current block is encoded or decoded by using information comprising said one or more OBIC modes.In one embodiment, said one or more conditions comprise a pre-defined number corresponding to a number of the neighbouring blocks used for the occurrence calculation.In one embodiment, the occurrence calculation for the OBIC based on the neighbouring region of the current block is terminated once a number of the neighbouring blocks used for the occurrence calculation reaches a pre-defined value.In one embodiment, the neighbouring region of the current block comprises one or more adjacent neighbouring positions, one or more non-adjacent neighbouring positions, or both.In one embodiment, if one neighbouring block covers multiple positions of adjacent position, non-adjacent positions, or both, the occurrence information associated with said one neighbouring block is calculated only once for deriving occurrence histogram.In one embodiment, during the occurrence calculation for a target neighbouring block in the neighbouring region of the current block, a corresponding neighbouring adjacent or non-adjacent position, block width and block height of the target neighbouring block are collected.In one embodiment, if a target neighbouring block covers multiple positions of adjacent position, non-adjacent positions, or both, the occurrence information associated with the target neighbouring block is calculated only once for deriving occurrence histogram.In one embodiment, if multiple positions of neighbouring adjacent positions, neighbouring non-adjacent positions or both are located within a target neighbouring block, only one of the multiple positions is used in deriving occurrence histogram.BRIEF DESCRIPTION OF THE DRAWINGSFig. 1A illustrates an exemplary adaptive Inter / Intra video encoding system incorporating loop processing.Fig. 1B illustrates a corresponding decoder for the encoder in Fig. 1A.Fig. 2 shows the intra prediction modes as adopted by the VVC video coding standard.Figs. 3A-B illustrate examples of wide-angle intra prediction a block with width larger than height (Fig. 3A) and a block with height larger than width (Fig. 3B) .Fig. 4 illustrate examples of two vertically-adjacent predicted samples using two non-adjacent reference samples in the case of wide-angle intra prediction.Figs. 5A-C illustrate an example of the DIMD chroma mode using the DIMD derivation method to derive the chroma intra prediction mode of the current block based on the neighbouring reconstructed Y (Fig. 5A) , Cb (Fig. 5B) and Cr (Fig. 5C) samples in the second neighbouring row and column.Fig. 6 illustrates the locations of the neighbouring blocks (L, A, BL, AR, AL) used in the derivation of a general MPM list.Fig. 7 illustrates an example of non-adjacent spatial neighbouring candidates for OBIC mode.Fig. 8 illustrates an example of the histogram of occurrences of IPM modes in the spatial neighbourhood of a CU.Fig. 9 illustrates a flowchart of an exemplary video coding system that avoids duplicated occurrence information calculations according to an embodiment of the present invention.DETAILED DESCRIPTION OF THE INVENTIONIt will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, may be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the systems and methods of the present invention, as represented in the figures, is not intended to limit the scope of the invention, as claimed, but is merely representative of selected embodiments of the invention. References throughout this specification to “one embodiment, ” “an embodiment, ” or similar language mean that a particular feature, structure, or characteristic described in connection with the embodiment may be included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily all referring to the same embodiment.Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize, however, that the invention can be practiced without one or more of the specific details, or with other methods, components, etc. In other instances, well-known structures, or operations are not shown or described in detail to avoid obscuring aspects of the invention. The illustrated embodiments of the invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The following description is intended only by way of example, and simply illustrates certain selected embodiments of apparatus and methods that are consistent with the invention as claimed herein.Several new methods related to OBIC mode in MPM list construction, MPM candidates reordering, coding information used in histogram calculation, neighbouring positions used in DIMD mode and DIMD mode syntax design are disclosed.OBIC Candidates in MPM ListThe newly disclosed OBIC candidates in OBIC mode can be added into MPM list as MPM candidates. Some derived candidates can be derived from OBIC candidates.In one embodiment, when constructing MPM list, the OBIC candidates in DIMD mode are added into MPM list.In another embodiment, when constructing MPM list, the OBIC candidates are added into MPM list, no matter DIMD mode is enabled or not.In another embodiment, when constructing MPM list, if the DIMD candidates and OBIC candidates are both available to be added into the MPM list, DIMD candidates are added into MPM list before OBIC candidates, OBIC candidates are added into MPM list before the DIMD candidates, or DIMD candidates and OBIC candidates are added into MPM list in an interleaving manner. For example, assume m DIMD candidates and n OBIC candidates are both available to be added into the MPM list. The m DIMD candidates can be inserted into the MPM list before n OBIC candidates. Or, the n OBIC candidates can be inserted into the MPM list before m DIMD candidates. Or, the insertion order / priority is {1st DIMD, 1st OBIC, 2nd DIMD, 2nd OBIC, 3rd DIMD, 3rd OBIC, …} or {1st OBIC, 1st DIMD, 2nd OBIC, 2nd DIMD, 3rd OBIC, 3rd DIMD, …} .In another embodiment, when constructing MPM list, only the first N OBIC candidates are added into MPM list, where N is an integer greater than zero.In another embodiment, MPM derived modes can be the neighbouring modes of OBIC candidates.Example (1) : MPM derived modes are 1st OBIC candidate intra mode -1, 1st OBIC candidate intra mode +1, 2nd OBIC candidate intra mode -1, 2nd OBIC candidate intra mode +1, …5th OBIC candidate intra mode -1, 5th OBIC candidate intra mode +1, 1st OBIC candidate intra mode -2, 1st OBIC candidate intra mode +2, …and so on.Example (2) : MPM derived modes are only from partial OBIC candidates, for example, derived candidates are 1st OBIC candidate intra mode -1, 1st OBIC candidate intra mode +1, 2nd OBIC candidate intra mode -1, 2nd OBIC candidate intra mode +1, 1st OBIC candidate intra mode -2, 1st OBIC candidate intra mode +2, …and so on. The partial OBIC candidates can be the first N OBIC candidates.Example (3) : The MPM derived modes are derived from the OBIC candidates, and the MPM list insertion order can be different from the derivation order. For instance, the derivation order is 1st OBIC candidate intra mode -1, 1st OBIC candidate intra mode +1, 2nd OBIC candidate intra mode -1, 2nd OBIC candidate intra mode +1, …5th OBIC candidate intra mode -1, 5th OBIC candidate intra mode +1, 1st OBIC candidate intra mode -2, 1st OBIC candidate intra mode +2, …and so on. The MPM list insertion order is 1st OBIC candidate intra mode -1, 2nd OBIC candidate intra mode -1, 3rd OBIC candidate intra mode -1, …and so on.In another embodiment, when creating MPM list, the intra prediction modes at neighbouring spatial adjacent and non-adjacent positions of the current block, table entries storing the information of recently used intra prediction modes, or temporal positions at previous coded pictures or slices are referred. When traversing these positions (e.g., these positions can be pre-defined or explicitly indicated) , a histogram is built to record the occurrence of each intra prediction modes, and each bin in the histogram corresponds to an intra prediction mode. After building the histogram, the first k bins (i.e., corresponding to the first k intra prediction modes) with higher occurrence values are selected and used in constructing MPM list. For example, if a position is coded by intra prediction mode, the occurrence is added to the corresponding histogram bin. The occurrence can be measured based on including but not limited to block size, block area, or gradient (e.g., Sobel filter) . The occurrence can be further normalized by spatial or temporal distance between the position to the current block. That is, the occurrence is adjusted lower if the position is farther to the current block. For example, the corresponding intra prediction modes in the histogram can include planar, DC, angular modes, wide angle intra prediction modes. For another example, if the occurrence is measured by block area, the corresponding block area of a position is added to the histogram bin according to the intra prediction mode of the position. For another example, if the occurrence is measured by gradient, the corresponding horizontal and / or vertical gradient magnitudes of positions are added to the histogram bin according to the intra prediction mode of the position. For another example, if the occurrence is measured by block area, when adding the corresponding block area of a position to the histogram bin, the to-be-added block area is normalized by the distance to the current block. Suppose the to-be-added block area is A and the distance to the current block is d, the final to-be-added block area is A / d.For example, the table entries can be some tables or some buffers to store auxiliary coding information that are needed to compute histogram information. This auxiliary coding information can include, but not limited to, spatial or temporal distance between neighbouring positions and the current block position, the current block area, or intra prediction modes of reconstruction samples.MPM Candidates Reordering Using Occurrence and Other InformationThe occurrence-based histogram calculation can be utilized as the reordering metric in the MPM candidates reordering. Existing MPM reordering mechanism utilizes the template cost to reorder the PMPM candidates except for planar mode. In the proposed method, the histogram and other coding information (or block information) are exploited to perform MPM candidate reordering. The coding information can be, but not limited to, intra prediction mode of reconstruction samples, intra prediction mode of derived reconstruction samples, etc. The block information can be, but not limited to, block width, block height, block aspect ratio, partitioning information, etc.In one embodiment, histogram and block area are used to replace the existing template cost based MPM reordering mechanism.In another embodiment, in addition to existing template cost based MPM reordering mechanism, histogram and other coding information (or block information) are also used in MPM reordering mechanism.Example (1) : Two or more reordering metrics are jointly considered to reorder MPM candidates. One candidate will consider template cost, results from histogram and other coding information (or block information) as the reordering ratings among MPM candidates. The reordering will be performed according to the final ratings from two or more reordering metrics.Example (2) : Adaptively select one reordering metric out of two or multiple mechanisms for one candidate. For instance, according to block size, small blocks utilize the histogram and other coding information (or block information) , and large blocks utilize template cost.In another embodiment, sub-group reordering inside a group reordering is considered in MPM candidates reordering.Example (1) : Top N DIMD candidates as a sub-group are reordering using template cost based or occurrence-based reordering metric. The sub-group reordering results are added into MPM lists as a group and template cost based or occurrence-based reordering is performed to reorder MPM candidates.Example (2) : DIMD merge list is constructed as a sub-group and one or more reordering mechanism is selected to reorder the DIMD merge candidates. The DIMD merge reordering results are added into MPM lists as a group and one or more reordering mechanism is selected to reorder the MPM candidates.In another embodiment, MPM list is initially created according to a default rule to get the most probable intra prediction modes to fulfil the list. After that, information in table is referred. The table entries store the information of recently used intra prediction modes, temporal positions at previous coded pictures, or slices at the locations of neighbouring spatial adjacent and non-adjacent positions of the current block. The block area information at these positions is added to the corresponding bins of a histogram, and each bin corresponds to the intra prediction modes among these positions. Then, MPM list is reordered according to the magnitude of the corresponding histogram bin and the most probable intra prediction modes in the MPM list.For example, the table entries can be some tables or some buffers to store auxiliary coding information that is needed to compute histogram information. This auxiliary coding information can include, but not limited to, spatial or temporal distance between neighbouring positions and current block’s position, current block’s area, intra prediction modes of reconstruction samples.Coding Information Used in Histogram CalculationIt is proposed that during histogram calculation, some coding information or block information is further considered as additional weightings in histogram, similar to OBIC mode. One single list or multiple lists can be constructed as DIMD merge lists using histogram plus different additional weightings from coding information or block information.In one embodiment, in histogram calculation, coding information is further considered as additional weightings in histogram. The coding information can be, but not limited to, intra prediction mode of reconstruction samples, intra prediction mode of derived reconstruction samples, etc.In another embodiment, in histogram calculation, block information is further considered as additional weightings in histogram. The block information can be, but not limited to, block width, block height, block aspect ratio, partitioning information, etc.In another embodiment, to construct DIMD merge list, one single list is constructed but using one or more different histogram calculation methods. That is, combination of additional weightings from coding information or block information.Example (1) : Using different histogram calculation methods, multiple candidates are generated and only those candidates which have high occurrence in candidate generation can be added to DIMD merge list.Example (2) : Using different histogram calculation methods, multiple candidates are generated and only those candidates which have low template cost in candidate generation can be added to DIMD merge list.In another embodiment, to construct DIMD merge list, two or more lists are constructed but using one or more different histogram calculation methods. That is, combination of additional weightings from coding information or block information.Example (1) : Using different histogram calculation methods, multiple candidates are generated in different lists. Multiple lists can all be kept and only one list is used as DIMD merge list.Example (2) : Using different histogram calculation methods, multiple candidates are generated in different lists. Multiple candidates in multiple lists will be added into DIMD merge list according to ascending order to template matching cost.DIMD Mode Syntax DesignNew histogram calculation by considering some coding information or block information as additional weightings are designed as new modes in DIMD mode. The new DIMD modes can be explicitly or implicitly signalled.In one embodiment, the new DIMD modes are treated as a sub-mode under DIMD mode. After signalling DIMD flag, one or more bins are signalled to indicate the new DIMD modes.In another embodiment, the new DIMD modes are treated as additional modes other than DIMD mode. The DIMD flag spends two or more bins to indicate the mode to be used for current blocks (i.e., histogram calculation to be used for current blocks) .In another embodiment, the new DIMD modes are implicitly determined, such as according to block size or histogram results without additional weightings.Example (1) : If there is no intra prediction mode showing the highest amplitude in histogram results without additional weightings, histogram calculation will use further additional weightings, that is we will consider using new DIMD modes for current blocks implicitly.Example (2) : If current block is smaller than an area threshold, histogram results without additional weightings are used. Otherwise, histogram calculation with additional weightings is considered.Sampling Position in Adjacent Position and Non-Adjacent Position in OBICIn OBIC, the neighbouring adjacent and neighbouring non-adjacent positions are used to check the occurrence. However, it is possible that some blocks will be calculated multiple times because of large block area covering multiple pre-defined adjacent and non-adjacent positions. For example, a large block may cover multiple positions (e.g. positions #15 and #18 in the upper right direction of the current block in Fig. 7) . Therefore, the occurrence calculation for the block covering positions #15 and #18 may be performed twice. It is proposed that the adjacent neighbouring and non-adjacent neighbouring positions used in OBIC can be adaptively changed according to some conditions, such as pre-defined collected number of blocks.In one embodiment, during neighbouring positions check and occurrence calculation, number of blocks in occurrence is pre-defined. When collecting the neighbouring blocks’ information, number of blocks during collection is also recorded to avoid duplicated calculation. In other words, each block will only be recorded once.The occurrence information is collected over a neighbouring region of a block being coded, and the neighbouring regions for the current block and a previous block overlap. Therefore, if we keep track of which blocks in the neighbouring regions (i.e., the overlapped region) have been processed, duplicated computation can be avoided.Example (1) : To avoid large collection in the buffer, the occurrence information collection is terminated once the number of blocks reaches a pre-defined value (e.g. 12 blocks) .Example (2) : The duplicated block covering multiple adjacent and non-adjacent positions are collected. During occurrence calculation, the duplicated blocks will only be calculated once in histogram.In another embodiment, the neighbouring adjacent position and non-adjacent positions are adaptively changed. When collecting the neighbouring blocks’ information, the positions, the block width and the block height are also collected. If different neighbouring positions are located inside the same block, only one of those positions will be used in histogram and the others will be skipped.Any of the foregoing proposed methods of deriving occurrence histogram for OBIC can be implemented in encoders and / or decoders. For example, any of the proposed methods can be implemented in predictor derivation module of an encoder, and / or a predictor derivation module of a decoder. Alternatively, any of the proposed methods can be implemented as a circuit coupled to the predictor derivation module of the encoder and / or the predictor derivation module of the decoder, so as to provide the information needed by the predictor derivation module.The OBIC without duplicated occurrence calculations as described above can be implemented in an encoder side or a decoder side. For example, any of the proposed methods can be implemented in an Intra prediction module (e.g. Intra Pred. 150 in Fig. 1B) in a decoder or an Intra prediction module in an encoder (e.g. Intra Pred. 110 in Fig. 1A) . Any of the proposed methods can also be implemented as a circuit coupled to the intra coding module at the decoder or the encoder. However, the decoder or encoder may also use additional processing unit to implement the required processing. While the Intra prediction units (e.g. unit 110 in Fig. 1A and unit 150 in Fig. 1B) are shown as individual processing units, they may correspond to executable software or firmware codes stored on a media, such as hard disk or flash memory, for a CPU (Central Processing Unit) or programmable devices (e.g. DSP (Digital Signal Processor) or FPGA (Field Programmable Gate Array) ) .Fig. 9 illustrates a flowchart of an exemplary video coding system that avoids duplicated occurrence information calculations according to an embodiment of the present invention. The steps shown in the flowchart may be implemented as program codes executable on one or more processors (e.g., one or more CPUs) at the encoder side. The steps shown in the flowchart may also be implemented based hardware such as one or more electronic devices or processors arranged to perform the steps in the flowchart. According to this method, input data associated with a current block are received in step 910, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side. During occurrence calculation for OBIC (Occurrence-Based Intra Coding) based on a neighbouring region of the current block, neighbouring positions are changed according to one or more conditions, or a total number of neighbouring blocks in the neighbouring region used for the occurrence calculation is recorded in step 920. One or more OBIC modes are generated based on occurrence information associated with the neighbouring blocks in the neighbouring region in step 930.The flowchart shown is intended to illustrate an example of video coding according to the present invention. A person skilled in the art may modify each step, re-arranges the steps, split a step, or combine steps to practice the present invention without departing from the spirit of the present invention. In the disclosure, specific syntax and semantics have been used to illustrate examples to implement embodiments of the present invention. A skilled person may practice the present invention by substituting the syntax and semantics with equivalent syntax and semantics without departing from the spirit of the present invention.The above description is presented to enable a person of ordinary skill in the art to practice the present invention as provided in the context of a particular application and its requirement. Various modifications to the described embodiments will be apparent to those with skill 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 particular embodiments shown and described, but is to be accorded the widest scope consistent with the principles and novel features herein disclosed. In the above detailed description, various specific details are illustrated in order to provide a thorough understanding of the present invention. Nevertheless, it will be understood by those skilled in the art that the present invention may be practiced.Embodiment of the present invention as described above may be implemented in various hardware, software codes, or a combination of both. For example, an embodiment of the present invention can be one or more circuit circuits integrated into a video compression chip or program code integrated into video compression software to perform the processing described herein. An embodiment of the present invention may also be program code to be executed on a Digital Signal Processor (DSP) to perform the processing described herein. The invention may also involve a number of functions to be performed by a computer processor, a digital signal processor, a microprocessor, or field programmable gate array (FPGA) . These processors can be configured to perform particular tasks according to the invention, by executing machine-readable software code or firmware code that defines the particular methods embodied by the invention. The software code or firmware code may be developed in different programming languages and different formats or styles. The software code may also be compiled for different target platforms. However, different code formats, styles and languages of software codes and other means of configuring code to perform the tasks in accordance with the invention will not depart from the spirit and scope of the invention.The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described examples are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims
1.A method of video coding, the method comprising:receiving input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;during occurrence calculation for OBIC (Occurrence-Based Intra Coding) based on a neighbouring region of the current block, changing neighbouring positions according to one or more conditions, or recording a total number of neighbouring blocks in the neighbouring region used for the occurrence calculation; andgenerating one or more OBIC modes based on occurrence information associated with the neighbouring blocks in the neighbouring region.2.The method of Claim 1, further comprising generating a target MPM (Most Probable Modes) list comprising said one or more OBIC modes for the current block.3.The method of Claim 1, further comprising encoding or decoding the current block by using information comprising said one or more OBIC modes.4.The method of Claim 1, wherein said one or more conditions comprise a pre-defined number corresponding to a number of the neighbouring blocks used for the occurrence calculation.5.The method of Claim 1, wherein the occurrence calculation for the OBIC based on the neighbouring region of the current block is terminated once a number of the neighbouring blocks used for the occurrence calculation reaches a pre-defined value.6.The method of Claim 1, wherein the neighbouring region of the current block comprises one or more adjacent neighbouring positions, one or more non-adjacent neighbouring positions, or both.7.The method of Claim 1, wherein if one neighbouring block covers multiple positions of adjacent position, non-adjacent positions, or both, the occurrence information associated with said one neighbouring block is calculated only once for deriving occurrence histogram.8.The method of Claim 1, wherein during the occurrence calculation for a target neighbouring block in the neighbouring region of the current block, a corresponding neighbouring adjacent or non-adjacent position, block width and block height of the target neighbouring block are collected.9.The method of Claim 1, wherein if a target neighbouring block covers multiple positions of adjacent position, non-adjacent positions, or both, the occurrence information associated with the target neighbouring block is calculated only once for deriving occurrence histogram.10.The method of Claim 1, wherein if multiple positions of neighbouring adjacent positions, neighbouring non-adjacent positions or both are located within a target neighbouring block, only one of the multiple positions is used in deriving occurrence histogram.11.An apparatus for video coding, the apparatus comprising one or more electronic circuits or processors arranged to:receive input data associated with a current block, wherein the input data comprise pixel data to be encoded at an encoder side or data associated with the current block to be decoded at a decoder side;during occurrence calculation for OBIC (Occurrence-Based Intra Coding) based on a neighbouring region of the current block, adaptively change neighbouring positions according to one or more conditions, or record a total number of neighbouring blocks in the neighbouring region used for the occurrence calculation; andgenerate one or more OBIC modes based on occurrence information associated with the neighbouring blocks in the neighbouring region.
Citation Information
Patent Citations
Image / video coding method, device and system and computer readable storage medium
CN113473119A
Method of adaptive intra prediction mode encoding and apparatus for the same, and method of encoding and apparatus for the same
US20130170546A1
Method and device for encoding and decoding information indicating intra skip mode prediction method
US20180324460A1
Systems and methods for image coding
US20220021874A1
Chroma mode intra coding
WO2020065508A1