Can the filter do something in addition to check if the data fall in the specified value range? For example, check if the change of a data point from the previous data point is larger than certain value (to filter out unreasonably extreme change of obs)

Yes, filters can look at the entire observation space so that they can iterate over every point and surrounding points.