SPRUI30H November 2015 – May 2024 DRA745 , DRA746 , DRA750 , DRA756
A block diagram representing the Motion Detection (MDT) Block is shown on Figure 10-4.
The Motion Detection block takes as input 3 adjacent fields of Luma data, motion data calculated from the previous 3 fields, and the current X, Y and field ID indicators and generates motion vector outputs which drive the Edge Directed Interpolation (EDI), Film Mode (FMD) and output motion values to DDR
There are two parallel paths - Motion Vector Calculation and Uniform Area Detection.
The Motion Vector Calculation path generates the FMD motion vector and the DDR output motion vector. The combination of the Motion Vector and Uniform Area Detection is used to calculate the EDI motion vector value.
The Motion Vector Calculation Path operates using a sliding 3 pixel wide by 2 pixel tall window over 2 adjacent fields of the same field ID polarity (2 top fields or 2 bottom fields). The first stage is to calculate the filtered motion value (MV Calc). The below diagram shows the dataflow for calculating the Filtered Motion Value from MV Calc:
The Filtered Motion Value is then operated on by the Max Filter operation, which performs a maximum operation between the last 3 filtered motion values and the last frame’s motion value. The process is to calculate the maximum value of the last 3 filter motion values, and this value is written to DDR to be read back in on the next frame. The maximum value is taken between the previous frame’s maximum value as read back from DDR, and the maximum value between the current last 3 motion values, and this is passed to the Detect Motion block which will drive the EDI module.
The Film Mode motion value output is just the output from the MV Calc data path. The following diagram shows the data path. Please note the line buffers, which are used to adjust for different polarity of fields (2 motion value fields are of opposite polarity, meaning a 1 line difference in one or the other field):
The Uniform Area Detection Path operates using a sliding 5 pixel wide by 3 pixel tall window over 2 adjacent fields of opposite field ID polarity (1 field delay and 2 field delay) to calculate a spatial frequency component. The following diagram shows how this component is calculated within each pixel window:
The spatial frequency output is used to scale the motion vector generated by the Maximum Filter operation based on thresholding against the MMR values VPE_DEI_REG2[7:0] MDT_SF_SC_THR1, VPE_DEI_REG2[15:8] MDT_SF_SC_THR2 and VPE_DEI_REG2[23:16] MDT_SF_SC_THR3. The following diagram (in the Detect Motion block) performs this thresholding to generate the final motion vector output to the EDI module: