block adaptive method