1. A method of de-duplicating a volume of data, the method comprising: selecting a plurality of overlapping portions of an input segment within the volume of data; comparing each of the overlapping portions of the input segment with a plurality of portions of a dictionary segment from a de-duplication dictionary to identify a first portion of the input segment that matches a first portion of the dictionary segment; after identifying the matching first portions of the input segment and dictionary segment, determining a starting position of selected bytes within the input segment that differs from a starting position of selected bytes within the dictionary segment according to a difference between starting positions of the matching first portions of the input segment and dictionary segment, the selected bytes of the input segment including more bytes than any one of the overlapping portions of the input segment; comparing the selected bytes of the input segment with the selected bytes of the dictionary segment to identify dictionary-matching bytes within the input segment; and replacing the dictionary-matching bytes within the input segment with a token representative of the dictionary segment to reduce the size of the volume of data.
1. A method of de-duplicating a volume of data, the method comprising: selecting a plurality of overlapping portions of an input segment within the volume of data; comparing each of the overlapping portions of the input segment with a plurality of portions of a dictionary segment from a de-duplication dictionary to identify a first portion of the input segment that matches a first portion of the dictionary segment; after identifying the matching first portions of the input segment and dictionary segment, determining a starting position of selected bytes within the input segment that differs from a starting position of selected bytes within the dictionary segment according to a difference between starting positions of the matching first portions of the input segment and dictionary segment, the selected bytes of the input segment including more bytes than any one of the overlapping portions of the input segment; comparing the selected bytes of the input segment with the selected bytes of the dictionary segment to identify dictionary-matching bytes within the input segment; and replacing the dictionary-matching bytes within the input segment with a token representative of the dictionary segment to reduce the size of the volume of data. 9. The method of claim 1 wherein replacing the dictionary-matching bytes with a token representative of the dictionary segment comprises determining a contiguous sequence of bytes within the selected bytes of the input segment that match a corresponding sequence of bytes within the selected bytes of the dictionary segment, and substituting, for the contiguous sequence of bytes, the token representative of the dictionary segment together with information that indicates the number of bytes within the contiguous sequence of bytes.