Engineering Lab

UCT CSC2002 / 2022

Parallel neighbourhood filters

Serial and fork/join image filtering with neighbourhood windows and comparative timing experiments.

JavaMean / median filtersFork / joinImageIO

UCT / COURSE CONTEXT / 2022

CSC2002S · Computer Science 2002

Concurrent programming, computer architecture and interface design, with Java and assembler practicals.

Science handbook · 2022

ENGINEERING PERSPECTIVE

Inside the work

Compare two neighbourhood filters and explore how pixel work can be partitioned across fork/join tasks. It connects image quality, border correctness and parallel overhead rather than assuming parallel means faster.

Java / ImageIO
Read and write image pixels for serial and parallel mean/median implementations.
Fork/join
Recursively partition image width into vertical strips above a cutoff.
STEP 1 / 3

Read a neighbourhood

Collect channel values around the current pixel using the configured filter window.

Source-derived walkthrough

How it works

Read image pixels with ImageIO, apply channel-wise mean or median operations over windows and partition image processing into recursive parallel tasks.

Results & recovery

  • Four named serial/parallel implementations and original result graphs were recovered.

Technical limitations

Not rerun in this launch pass; correctness at borders and shared mutable channel state need tests. Retained graphs are not promoted to fresh benchmark claims.

What I would improve now

Compare every output pixel against a serial reference, isolate task-local state and benchmark the same input with consistent timing boundaries.

NEXT IN THE ARCHIVERearranging an image into tiles