abstract average filter