1. A computer-implemented method of compressing input data comprising a sequence of input data symbols, the method comprising: (a) copying a predetermined number of input data symbols into a defined block of input data symbols; (b) selecting a subset of input data symbols S N in the defined block of input data symbols according to a first predetermined selection rule; (c) generating a respective input data dictionary-index value DI N for the selected subset S N ; (d) if the input data dictionary-index value DI N represents a range of dictionary data symbols D N stored in a dictionary, then: (e) determining a range of input data symbols including the subset of input data symbols S N that matches a range of dictionary data symbols that includes the range of dictionary data symbols D N ; and (f) storing a correlation of the matching input data range of symbols and the dictionary data range of symbols, determined in step (e) as a set comprising a pointer to a starting symbol location in the dictionary and a matching range length; (g) selecting a next subset of input data symbols S N in the defined block of input data symbols according to the first predetermined selection rule; and (h) repeating steps (c)-(g) until an end of the defined block of input data symbols is reached; and converting the defined block of input data symbols into an outgoing data payload by replacing those input data symbols determined to be in a matching range of symbols in the dictionary in steps (b)-(h) with an indication of the stored corresponding pointer and matching range length.
1. A computer-implemented method of compressing input data comprising a sequence of input data symbols, the method comprising: (a) copying a predetermined number of input data symbols into a defined block of input data symbols; (b) selecting a subset of input data symbols S N in the defined block of input data symbols according to a first predetermined selection rule; (c) generating a respective input data dictionary-index value DI N for the selected subset S N ; (d) if the input data dictionary-index value DI N represents a range of dictionary data symbols D N stored in a dictionary, then: (e) determining a range of input data symbols including the subset of input data symbols S N that matches a range of dictionary data symbols that includes the range of dictionary data symbols D N ; and (f) storing a correlation of the matching input data range of symbols and the dictionary data range of symbols, determined in step (e) as a set comprising a pointer to a starting symbol location in the dictionary and a matching range length; (g) selecting a next subset of input data symbols S N in the defined block of input data symbols according to the first predetermined selection rule; and (h) repeating steps (c)-(g) until an end of the defined block of input data symbols is reached; and converting the defined block of input data symbols into an outgoing data payload by replacing those input data symbols determined to be in a matching range of symbols in the dictionary in steps (b)-(h) with an indication of the stored corresponding pointer and matching range length. 2. The computer-implemented method of claim 1 , wherein determining the range of matching input data symbols comprises: iteratively comparing different ranges of input data symbols including the respective subset of input data symbols S N to different ranges of dictionary data symbols that include the range of dictionary data symbols D N .