1. A sub-block parser configured with a variable sized window, where the variable sized window is used by the parser to parse a block of data into smaller sub-blocks of data by passing the variable sized window over the block of data to identify sub-block boundary locations, where the smaller sub-blocks of data are mutually exclusive subsets of the block of data where a window location is defined by b[k−A+1. .. k+B], b being the block of data, k being an integer. A being an integer, and B being and integer greater than A, and where a sub-block is defined by the location of two boundaries placed by the parser at two different window locations, where A and B may vary as a function of an attribute of the block of data being parsed,