SPRUHZ7K August 2015 – April 2024 AM5706 , AM5708 , AM5716 , AM5718 , AM5718-HIREL
A block diagram representing the Edge Directed Interpolation (EDI) Block is shown on Figure 10-9
Figure 10-9 Edge Directed Interpolation (EDI) Block DiagramThe 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):
Figure 10-10 Edge Directed Interpolation Edge Vector CalculationThe 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:
Figure 10-11 Edge Directed Interpolation Luma Interpolation CalculationnThe following diagram shows how Chroma is interpolated:
Figure 10-12 Edge Directed Interpolation Chroma Interpolation CalculationEach 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)