1
temporal_strength
α
m
α
0
Internal Modules
187
SPRUHI7A – December 2012 – Revised June 2016
Copyright © 2012–2016, Texas Instruments Incorporated
High-Definition Video Processing Subsystem (HDVPSS)
1.2.10.3.2 Temporal Filter
The temporal filter is motion- and noise- adaptive. The motion at each pixel is measured as the sum of the
absolute differences between the spatially filtered pixel (Ys, Us, Vs) of the current frame and the output
pixel (Yp, Up, Vp) of the previous frame.
m = |Ys – Yp|+|Us – Up|+|Vs – Vp|
Figure 1-135. Motion versus Blending Factor Function
shows how the motion value,
m
, translates into the blending factor
α
. It can be written as:
α
=
α
0
+(1-
α
0
)*m/ temporal_strength if m < temporal strength
=1 if m >= temporal strength
where temporal_strength is a register to control the strength of the temporal filter. Setting it to 0 means the
temporal filter is essentially bypassed. The discussions on the parameter
α
0
will be detailed in
.
The output pixel value of the temporal filter is:
I
o
=
α
I
s
+ (1-
α
)I
p
where
I
s
is the spatially filtered pixel value at the current frame and
I
p
is the pixel value of previous output
frame.
1.2.10.3.3 Noise Estimation
For each tile, the noise level
tileNoise
is the average of absolute pixel differences between the input frame
I
and the previous output frame
I
p
. In the averaging, the absolute pixel differences which are smaller than
max_noise
are only taken to avoid strong moving edges. The noise level of a frame
Frame_noise
is the
average noise level of all
tileNoises
in a frame. Some tiles that contain inaccurate noise level need to be
excluded from the averaging calculation. They are:
(a) The boarder tiles on the four edges of a frame. They may contain zeroes that are padded to make the
frame size a multiple of 32.
(b) Pure dark or pure white tiles. The max and min Y values of a tile are used to determine if a tile is pure
black or pure while one. If maxY<pure_black_threshold, it is a pure black tile. If minY>255 -
pure_white_threshold, it is a pure white tile.
Y, U, V channels have their own noise level respectively, denoted as
Frame_noise_Y
,
Frame_noise_U
,
Frame_noise_V
.
1.2.10.3.4 Threshold and
α
0
At the end of each frame, the accumulated noise level
Frame_noise_Y
,
Frame_noise_U
,
Frame_noise_V
are processed to generate the thresholds for the spatial filter and the
α
0
of the temporal filter. The noise
level will first pass an IIR low pass filter as shown in the following example.
Frame_noise_filtered=Frame_noise_previous* noise_IIR_coeffFrame_noise *(1-
noise_IIR_coefficient )