The attached model implements an adaptive median filter using embedded MATLAB. There are lots of software implementations of median filter available on MATLAB central. However this implementation tries to expose the inherent parallelism in such an adaptive filter and make it suitable for hardware.
It also shows to how to break the image into smaller chunks to stream it into a median filter. The adaptive median filter buffers the data and operates on a region of data to compute a new center pixel of that region; The new pixel is applied on the original image to remove the salt and pepper noise.
In this demo the original image is streamed into the filter processor as a 1x9 column at a time. The processor buffers the data for 9 cycles to form a 9x9 image. For each pixel in the image the algorithm computes the median pixel by working parallely on this region; median is computed for 3x3, 5x5, 7x7 and 9x9 neighbourhood regions around the center pixel. The center pixel is either kept or replaced by one of the median pixel computed from the above regions starting from smallest to largest if it hits the threshold.