A data decompressor to decompress a block of compressed data comprising variable length symbols, comprising: a compressed data supplier to provide a first set of N distinct windows of contiguous data from the block of compressed data to respective symbol decoders (120a-120c) of a plurality of N symbol decoders (120a-120c), wherein each window of the first set of N distinct windows is provided with S bits of contiguous data from the block of compressed data, S being equal or greater than the number of bits of the longest variable length symbol of the compression scheme associated with the block of compressed data; the plurality of N symbol decoders (120a-120c) to each attempt, concurrently, to fully decode a respective variable length symbol that begins at a respective starting location of the window of contiguous data provided to the respective symbol decoder, the plurality of N symbol decoders configured to concurrently perform N decoding operations that cover every possible starting position of candidate symbols of S bits in the block of compressed data; the plurality of symbol decoders (120a-120c) to include a first symbol decoder that is to receive a first window of data from the first set of distinct windows having a starting location that corresponds to a first bit of the block of compressed data and to a beginning of a first valid symbol, the first symbol decoder to fully decode the first valid symbol and to determine a first length of the first valid symbol; and, a symbol sorter to receive a set of decoded symbols from the N symbol decoders (120a-120c) and the lengths of respective identified symbols that have been successfully decoded by the N symbol decoders (120a-120c), and to select valid decoded symbols from the set of decoded symbols by successively determining which symbol decoders of the N symbol decoders (120a-120c) decoded valid symbols using the first length of the first valid symbol and the lengths of the symbols from the identified symbols that are successively determined to be valid in the block of compressed data. a compressed data supplier to provide a first set of N distinct windows of contiguous data from the block of compressed data to respective symbol decoders (120a-120c) of a plurality of N symbol decoders (120a-120c), wherein each window of the first set of N distinct windows is provided with S bits of contiguous data from the block of compressed data, S being equal or greater than the number of bits of the longest variable length symbol of the compression scheme associated with the block of compressed data; the plurality of N symbol decoders (120a-120c) to each attempt, concurrently, to fully decode a respective variable length symbol that begins at a respective starting location of the window of contiguous data provided to the respective symbol decoder, the plurality of N symbol decoders configured to concurrently perform N decoding operations that cover every possible starting position of candidate symbols of S bits in the block of compressed data; the plurality of symbol decoders (120a-120c) to include a first symbol decoder that is to receive a first window of data from the first set of distinct windows having a starting location that corresponds to a first bit of the block of compressed data and to a beginning of a first valid symbol, the first symbol decoder to fully decode the first valid symbol and to determine a first length of the first valid symbol; and, a symbol sorter to receive a set of decoded symbols from the N symbol decoders (120a-120c) and the lengths of respective identified symbols that have been successfully decoded by the N symbol decoders (120a-120c), and to select valid decoded symbols from the set of decoded symbols by successively determining which symbol decoders of the N symbol decoders (120a-120c) decoded valid symbols using the first length of the first valid symbol and the lengths of the symbols from the identified symbols that are successively determined to be valid in the block of compressed data.