1. An apparatus comprising: an interface configured to receive a plurality of data blocks; a plurality of filters, each filter configured to filter data; and a processor configured to perform the following for each data block: associate the each data block with a processing step list of a plurality of processing step lists, each processing step list representing a filter chain comprising at least a subset of the filters coupled in sequence; and filter the each data block according to the filter chain represented by the associated processing step list by: performing the following for each filter descriptor pointed to by the associated processing step list: determining a filter pointed to by the each filter descriptor; and filtering the data block using the filter.