36. The computer-implemented method of claim 33 , wherein: selecting a subset of input data symbols S N comprises generating a respective input data hash value HV N for each N th input data symbol B N in the sequence of input data symbols, and wherein searching a dictionary-index comprises searching a hash index for an entry corresponding to each input data hash value HV N , where each hash index entry points to a dictionary data symbol HB and its corresponding location in the dictionary.
41. The computer-implemented method of claim 36 , further comprising: defining a block of dictionary data symbols; selecting every M th symbol from the defined block of dictionary data symbols and identifying its corresponding location in the dictionary; calculating a hash value HV M for each selected M th symbol; and storing the calculated hash value HV M and the corresponding dictionary location as an entry in the dictionary-index, wherein M≠N.