Encoding / decoding system and method
A computer-implemented method, computer program product and computing system for: receiving an unencoded data file; processing the unencoded data file to identify a plurality of file segments; mapping each of the plurality of file segments to a portion of a dictionary file, thus generating a plurality of mappings, wherein each of the plurality of mappings includes a starting location and a length; and generating a related encoded data file based, at least in part, upon the plurality of mappings.
1. A computer-implemented method, executed on a computing device comprising:
receiving an unencoded data file;
processing the unencoded data file to identify a plurality of file segments;
mapping each of the plurality of file segments to a portion of a dictionary file, thus generating a plurality of mappings, wherein each of the plurality of mappings includes a starting location as a bit-wise offset within the dictionary file and a length as a number of bits within the dictionary file beginning from the starting location, thus generating a related encoded data file based, at least in part, upon the plurality of mappings, wherein mapping each of the plurality of file segments to the portion of the dictionary file to generate the plurality of mappings includes mapping each of the plurality of file segments to a plurality of bits within the dictionary file using the starting location and length, wherein the dictionary file includes a binary sequence of all possible combinations of a predefined number having a defined bit length; and
generating a related encoded data file based, at least in part, upon the plurality of mappings.
2. The computer-implemented method of claim 1 further comprising:
receiving a request to manipulate the unencoded data file; and
processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
3. The computer-implemented method of claim 2 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes one or more of:
performing a homomorphic encoding operation; and
performing a heteromorphic encoding operation.
4. The computer-implemented method of claim 2 wherein generating a related encoded data file based, at least in part, upon the plurality of mappings includes one or more of:
generating a related compressed data file based, at least in part, upon the plurality of mappings; and
generating a related encrypted data file based, at least in part, upon the plurality of mappings.
5. The computer-implemented method of claim 2 wherein the dictionary file includes a plurality of discrete entries.
6. The computer-implemented method of claim 5 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a byte-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
7. The computer-implemented method of claim 2 wherein the dictionary file includes a plurality of concatenated entries.
8. The computer-implemented method of claim 7 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a bit-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
9. The computer-implemented method of claim 2 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, utilizing a sampling window, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
10. The computer-implemented method of claim 2 wherein the requested manipulations concern one or more of:
a computation operation;
a search operation;
an append operation;
a splitting operation;
a joining operation; and
a concatenating operation.
11. A non-transitory computer readable medium comprising a computer program product having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
receiving an unencoded data file;
processing the unencoded data file to identify a plurality of file segments;
mapping each of the plurality of file segments to a portion of a dictionary file, thus generating a plurality of mappings, wherein each of the plurality of mappings includes a starting location as a bit-wise offset within the dictionary file and a length as a number of bits within the dictionary file beginning from the starting location, thus generating a related encoded data file based, at least in part, upon the plurality of mappings, wherein mapping each of the plurality of file segments to the portion of the dictionary file to generate the plurality of mappings includes mapping each of the plurality of file segments to a plurality of bits within the dictionary file using the starting location and length, wherein the dictionary file includes a binary sequence of all possible combinations of a predefined number having a defined bit length; and
generating a related encoded data file based, at least in part, upon the plurality of mappings.
12. The non-transitory computer readable medium of claim 11 further comprising:
receiving a request to manipulate the unencoded data file; and
processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
13. The non-transitory computer readable medium of claim 12 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes one or more of:
performing a homomorphic encoding operation; and
performing a heteromorphic encoding operation.
14. The non-transitory computer readable medium of claim 12 wherein generating a related encoded data file based, at least in part, upon the plurality of mappings includes one or more of:
generating a related compressed data file based, at least in part, upon the plurality of mappings; and
generating a related encrypted data file based, at least in part, upon the plurality of mappings.
15. The non-transitory computer readable medium of claim 12 wherein the dictionary file includes a plurality of discrete entries.
16. The non-transitory computer readable medium of claim 15 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a byte-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
17. The non-transitory computer readable medium of claim 12 wherein the dictionary file includes a plurality of concatenated entries.
18. The non-transitory computer readable medium of claim 17 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a bit-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
19. The non-transitory computer readable medium of claim 12 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, utilizing a sampling window, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
20. The non-transitory computer readable medium of claim 12 wherein the requested manipulations concern one or more of:
a computation operation;
a search operation;
an append operation;
a splitting operation;
a joining operation; and
a concatenating operation.
21. A computing system including a processor and memory configured to perform operations comprising:
receiving an unencoded data file;
processing the unencoded data file to identify a plurality of file segments;
mapping each of the plurality of file segments to a portion of a dictionary file, thus generating a plurality of mappings, wherein each of the plurality of mappings includes a starting location as a bit-wise offset within the dictionary file and a length as a number of bits within the dictionary file beginning from the starting location, thus generating a related encoded data file based, at least in part, upon the plurality of mappings, wherein mapping each of the plurality of file segments to the portion of the dictionary file to generate the plurality of mappings includes mapping each of the plurality of file segments to a plurality of bits within the dictionary file using the starting location and length, wherein the dictionary file includes a binary sequence of all possible combinations of a predefined number having a defined bit length; and
generating a related encoded data file based, at least in part, upon the plurality of mappings.
22. The computing system of claim 21 further comprising:
receiving a request to manipulate the unencoded data file; and
processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
23. The computing system of claim 22 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes one or more of:
performing a homomorphic encoding operation; and
performing a heteromorphic encoding operation.
24. The computing system of claim 22 wherein generating a related encoded data file based, at least in part, upon the plurality of mappings includes one or more of:
generating a related compressed data file based, at least in part, upon the plurality of mappings; and
generating a related encrypted data file based, at least in part, upon the plurality of mappings.
25. The computing system of claim 22 wherein the dictionary file includes a plurality of discrete entries.
26. The computing system of claim 25 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a byte-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
27. The computing system of claim 22 wherein the dictionary file includes a plurality of concatenated entries.
28. The computing system of claim 27 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, in a bit-wise fashion, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
29. The computing system of claim 22 wherein processing the related encoded data file based, at least in part, upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file includes:
processing the related encoded data file, utilizing a sampling window, based upon the plurality of mappings and the dictionary file to generate a modified encoded data file that represents the requested manipulations of the unencoded data file.
30. The computing system of claim 22 wherein the requested manipulations concern one or more of:
a computation operation;
a search operation;
an append operation;
a splitting operation;
a joining operation; and
a concatenating operation.