SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
A block diagram representing the Edge Directed Interpolation (EDI) Block is shown on Figure 10-9
The Edge Directed Interpolation module operates on a 7x2 window (7 pixels wide, 2 in height) in both Luma and Chroma. Luma data is used to calculate an edge vector and edge vector confidence. Correlation scaling factor is set with VPE_DEI_REG3[31:24] EDI_COR_SCALE_FACTOR register. A diagram showing this calculation follows (Calc ev):
The edge vector and edge vector confidence are passed to the Spatial Interpolation module, which performs edge directed spatial interpolation. Following is a diagram showing how Luma is interpolated:
The following diagram shows how Chroma is interpolated:
Each of the cases shown above is on the 7x2 input pixel window for Luma and Chroma, based on the edge vector that was calculated. Each output equation (luma_out and chroma_out) is a combination of a straight vertical interpolation (luma/chroma_ver) and edge directed interpolation (luma/chroma_edge) using the Confidence factor output from the Edge Vector Calculation module. In the case of chroma interpolation, if the register VPE_DEI_REG3[1:0] EDI_INP_MODE = “11”, the chroma_out calculated for spatial interpolation is forced to the the vertical chroma output.
The Mix module does that actual mixing of spatial and temporal interpolation to produce the final result. 4 different interpolation modes are supported: Line double, Field double, 3D interpolation and 2D interpolation.
3D processing is enabled with VPE_DEI_REG3[2] EDI_ENABLE_3D register
The EDI Lut value selected based on the motion value will perform a blend between temporal and edge directed spatial interpolation using the equation:
ŷ(j, i, n) = αyspat(j, i, n) + (1 - α)ytemp(j, i, n)