Witness the development of H.265

Analysis of Coding Tools in HEVC Test Model (HM 1.0) – Intra Prediction

2010-12-01 H.265/HEVC View Comments Views(15,601)

The current intra prediction in HM unified two directional intra prediction methods, Arbitrary Direction Intra (ADI) introduced in JCTVC-A124 and Angular Intra Prediction introduced in JCTVC-A119, with simplification for parallel processing possibility, leading to a simplified unified intra prediction (JCTVC-B100, JCTVC-C042).

In current HM, unified intra prediction provides up to 34 directional prediction modes for different PUs. With the PU size of 4×4, 8×8, 16×16, 32×32, 64×64, there are 17, 34, 34, 34, and 5 prediction modes available respectively. The prediction directions in the unified intra prediction have the angles of +/- [0, 2, 5, 9, 13, 17, 21, 26, 32]/32. The angle is given by displacement of the bottom row of the PU and the reference row above the PU in case of vertical prediction, or displacement of the rightmost column of the PU and the reference column left from the PU in case of horizontal prediction. Figure 1 shows an example of prediction directions for 32×32 block size. Instead of different accuracy for different sizes, the reconstruction of the pixel uses the linear interpolation of the reference top or left samples at 1/32th pixel accuracy for all block size.

HM DecoderFigure 1. Available prediction directions in the unified intra prediction

Two arrays of reference samples are used in the unified intra prediction, corresponding to the row of samples lying above the current PU to be predicted, and the column of samples lying to the left of the same PU. Given a dominant prediction direction (horizontal or vertical), one of the reference arrays is defined to be the main array and the other array the side array. In the case of vertical prediction, the reference row above the PU is called the main array and the reference column to the left of the same PU is called the side array. In the case of horizontal prediction, the reference column to the left of the PU is called the main array and the reference row above the PU is called the side array.

When the intra prediction angle is positive, blue lines in Figure 1, only the samples from the main array are used for prediction. When the intra prediction angle is negative, red lines in Figure 1, a per-sample test should be performed to determine whether samples from the main or the side array should be used for prediction, as shown in Figure 2 (a). Additionally when the side array is used, the computation of the index into the side array requires a division operation. In order to remove the division operation, the lookup-table (LUT) technique is used for the negative angular prediction process in the calculation of the y-intercept in the case of vertical prediction or the x-intercept in the case of horizontal prediction. Normally, the integer and fractional parts of the intercept between are calculated using the following equations respectively:

deltaIntSide = (256*32*(l+1)/absAng)>>8

deltaFractSide = (256*32*(l+1)/absAng)%256

where absAng is the absolute value of intra prediction angle (=[ 2,    5,   9,  13,  17,  21,  26,  32]) and l is x/y pixel location for vertical/horizontal prediction. With LUT technique, the above equations can be replaced with the following equations:

deltaIntSide = (invAbsAngTable[absAngIndex]*(l+1))>>8

deltaFractSide = (invAbsAngTable[absAngIndex]*(l+1))%256

where invAbsAngTable = [4096, 1638, 910, 630, 482, 390, 315, 256]. By using LUT, there is no division operation during the computation of the index into the side array. However, there still exists the per-sample test to determine the main or the side array for prediction. To simplify this process, the main array is extended by projecting samples from the side array onto it according to the prediction direction, as shown in Figure 2 (b). During the projection, the fractional part of the intercept is omitted and the intercept is rounded to the nearest integer:

deltaInteger = (invAbsAngTable[absAngIndex]*(l+1)+128)>>8

Finally, the prediction process only uses the extended main array and the same simple linear interpolation formula to predict all samples in the PU. Figure 2 shows an example of simplified intra prediction with direction angle VER-8.

HM Decoder

Figure 2. An example of simplified intra prediction with direction angle VER-8

When DC mode is used in the intra prediction, the mean value of samples from both top row and left column is used for the DC prediction.

Table 1 summarizes the physical and logical mode indexes used in the bitstream and prediction functions respectively. Depending on the PU size, different numbers of prediction modes are available respectively, as listed in Table 2.

 Table 1. Physical and logical mode indexes used in the bitstream and prediction functions respectively

Index 0 1 2 3 4 5 6 7 8 9 10 11
Physical VER HOR DC VER-8 VER-4 VER+4 VER+8 HOR-4 HOR+4 HOR+8 VER-6 VER-2
Logical DC VER-8 VER-7 VER-6 VER-5 VER-4 VER-3 VER-2 VER-1 VER VER+1 VER+2

Index 12 13 14 15 16 17 18 19 20 21 22 23
Physical VER+2 VER+6 HOR-6 HOR-2 HOR+2 HOR+6 VER-7 VER-5 VER-3 VER-1 VER+1 VER+3
Logical VER+3 VER+4 VER+5 VER+6 VER+7 VER+8 HOR-7 HOR-6 HOR-5 HOR-4 HOR-3 HOR-2

Index 24 25 26 27 28 29 30 31 32 33
Physical VER+5 VER+7 HOR-7 HOR-5 HOR-3 HOR-1 HOR+1 HOR+3 HOR+5 HOR+7
Logical HOR-1 HOR HOR+1 HOR+2 HOR+3 HOR+4 HOR+5 HOR+6 HOR+7 HOR+8

Table 2. Prediction modes used for each PU size

PU size Number of prediction modes Used prediction modes in physical index
4×4 17 0-16
8×8 34 0-33
16×16 34 0-33
32×32 34 0-33
64×64 5 0-4

For chroma intra prediction, the prediction for chroma have at most five modes for all PU sizes: four basic modes (VER, HOR, DC, and VER-8) and one optional mode from the  best luma prediction mode, which depends on whether it is included in the basic prediction modes or not. 

In addition, an encoder modification for intra prediction search (JCTVC-C207) is also adopted by HM, but this is just an encoder optimization issue. Other coding tools in previous TMuC versions, such as adaptive intra smoothing (AIS), combined intra prediction (CIP), planar prediction, edge-based prediction, are still under further investigation and not included in current HM.

[References]

[1]. JCTVC-A119, Video coding technology proposal by Tandberg, Nokia, and Ericsson

[2]. JCTVC-A124, Video coding technology proposal by Samsung (and BBC)

[3]. JCTVC-B093, Simplified angular intra prediction

[4]. JCTVC-B100, Unification of the Directional Intra Prediction Methods in TMuC

[5].  JCTVC-B118, Angular intra prediction and ADI simplification

[6]. JCTVC-C042, TE5: Results for Simplification of Unified Intra Prediction

[7]. JCTVC-C207, Encoder improvement of unified intra prediction

Permanent Link: Analysis of Coding Tools in HEVC Test Model (HM 1.0) – Intra Prediction

Post Comment

*
To prove you're a person (not a spam script), type the security word shown in the picture.
Anti-spam image