Prediction plays a critical role in video coding, where current video data is coded by using previously reconstructed video data or other derived data as predictor. When coding or decoding a block, a prediction block corresponding to intra-prediction or inter-prediction is generated first. The prediction residue is then formed at the encoder side based on the current block and the prediction block. At the decoder side, the prediction block is used to reconstruct the reconstructed samples using the coded prediction residue.
Besides inter-prediction and intra-prediction, a new prediction mode named intra-block copy (IBC) has been adopted in the screen content coding (SCC) profile for the high efficiency video coding (HEVC) standard. IBC can take advantage of copying contents in the same picture. FIG. 1 illustrates an example of IBC, where a reference block (120) in the current picture is copied to the current block (110) as the prediction if IBC is applied. The reference block is located by applying a block-copying vector (BV, 130). The example in FIG. 1 shows that the BV points to the reference block horizontally. However, the BV can be a two-dimensional vector not restricted to be horizontal. The samples in the reference block have been reconstructed already before the current block is coded or decoded.
Inter simplified depth coding (InterSDC) is adopted into 3D-HEVC (three-dimensional HEVC) as a special prediction mode for depth coding. When InterSDC is used, a normal inter-prediction is first performed for the current block. A coded offset is then added to each pixels in the prediction block. If Pi,j represents the prediction value at pixel position (i, j) after performing the normal inter-prediction and Offset is the coded offset for this block, the final prediction value at pixel position (i, j) is Pi,j+Offset. With the InterSDC mode, no residues are coded. Thus the final prediction value will be output as the reconstructed value.
Depth lookup table (DLT) is adopted into 3D-HEVC. Since there are often only a small number of pixel values appearing in the depth component, the DLT signals those valid values from the encoder to the decoder. When a coding unit (CU) is coded in the intra simplified depth coding (SDC) mode or depth map modeling (DMM) mode, DLT is used to map the valid depth values to DLT indices. The DLT index is more efficient for compression. FIG. 2 illustrates an example of the DLT process, where only five pixel values (i.e., 50, 108, 110, 112 and 200) among the 256 possible pixel values appear in a picture block (e.g., a coding unit). The five pixel values can be represented using five DLT indices (i.e., 0, 1, 2, 3 and 4). The DLT can be signaled in picture parameter set (PPS). And it is up to the encoder to derive the DLT during the encoding process.
Since prediction values come from reconstructed pixels, there are distortions between the prediction values and the original values even if the original pixels in the current block and the original pixels in the reference block are exactly the same. Furthermore, since the reconstructed signal loses high-frequency information generally, the quality of prediction is deteriorated more when there are sharp pixel value changes in the reference block. FIG. 3 and FIG. 4 demonstrate two examples, where there are two and three segments with sharp edges in a block.
Accordingly, it is desirable to develop a method for prediction that can take into consideration of sharp transitions in the prediction block to improve coding performance.