For this type of architecture, each filter will receive input, parse that input into some data structure, perform transformations, and then send data out. The next filter will do the same thing, parse the input into a data structure, do transformations, and send data to another filter, which will also do the same thing. If each and every filter has to do this process with similar parsing at output stages, that's a lot of overhead.