Encoding / Decoding System and Method

JP2024544833A5Pending Publication Date: 2025-09-19LOGNOVATIONS HOLDINGS LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024522177
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2021-10-27
Filing Date
2022-10-13
Publication Date
2025-09-19

AI Technical Summary

Technical Problem

Existing data encoding methods require decoding and subsequent re-encoding, which is computationally expensive and inefficient.

Method used

A method involving a computer-implemented process that maps unencoded data file segments to a dictionary file, generating an encoded data file without the need for decoding, allowing direct manipulation through a dictionary-based encoding process.

Benefits of technology

Enables efficient processing of encoded data without decoding, reducing computational overhead and facilitating direct manipulation operations such as calculations, searches, and concatenations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

A computer-implemented method, computer program product and computing system for generating an associated encoded data file is provided. [Solution] A computer-implemented method, computer program product, and computing system for processing an 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 to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, generating an associated encoded data file based at least in part on the plurality of mappings; accepting a request to operate on the unencoded data file; and processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of the requested operation on the unencoded data file.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] (CROSS REFERENCE TO RELATED APPLICATIONS) This application claims priority to U.S. Provisional Applications No. 63 / 256,267, filed October 15, 2021, and No. 63 / 272,539, filed October 27, 2021, the entire contents of which are incorporated herein by reference.

[0002] FIELD OF THE DISCLOSURE This disclosure relates to data encoding, and more particularly, to systems and methods that enable processing of encoded data without the need for decoding. [Background technology]

[0003] Data may be encoded and decoded to convert the data from a first format to a second format to accomplish a task. One example of such encoding may be data compression, where data is converted from a first format (e.g., a large format) to a second format (e.g., a small format) to accomplish a task of conserving storage space. Another example of such encoding may be data encryption, where data is converted from a first format (e.g., an unencrypted format) to a second format (e.g., an encrypted format) to accomplish a task of protecting the data.

[0004] Unfortunately, when such encoded data is to be used (e.g., accessed or manipulated), it must first be decoded (e.g., decompressed / decrypted) before it can be used (e.g., accessed / manipulated) and then re-encoded (compressed / encrypted). As can be imagined, such decoding and subsequent re-encoding is expensive in terms of computation and usability. Summary of the Invention [Problem to be solved by the invention]

[0005] The present invention has been made to solve the problems in the conventional techniques described above. [Means for solving the problem]

[0006] Encoded data (processing) In one implementation, a computer-implemented method is executed on a computing device and includes processing an 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 to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, generating an associated encoded data file based at least in part on the plurality of mappings; accepting a request to operate on the unencoded data file; and processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of the requested operation on the unencoded data file.

[0007] One or more of the following features may be included: Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include one or more of performing a homogeneous encoding operation and performing a non-homogeneous encoding operation. The associated encoded data file may include one or more of an associated compressed data file or an associated encrypted data file. The dictionary file may include a plurality of discrete entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include processing the associated encoded data file in a byte-by-byte manner based on a plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file. The dictionary file may include a plurality of concatenated entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file may include processing the associated encoded data file in a bit-wise manner based on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file. The requested operation may relate to one or more of a calculation operation, a lookup operation, an append operation, a split operation, a join operation, and a concatenation operation. The associated encoded data file may be easier to process than the unencoded data file. The associated encoded data file may require less computational overhead than the unencoded data file.

[0008] In another implementation, a computer program product is resident on a computer readable medium and has a plurality of instructions stored thereon that, when executed by a processor, cause the processor to perform operations including: processing an 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 to generate a plurality of mappings, each of the plurality of mappings including a start location and a length, generating an associated encoded data file based at least in part on the plurality of mappings; accepting a request to operate on the unencoded data file; and processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of the requested operation on the unencoded data file.

[0009] One or more of the following features may be included: Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include one or more of performing a homogeneous encoding operation and performing a non-homogeneous encoding operation. The associated encoded data file may include one or more of an associated compressed data file or an associated encrypted data file. The dictionary file may include a plurality of discrete entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include processing the associated encoded data file in a byte-by-byte manner based on a plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file. The dictionary file may include a plurality of concatenated entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file may include processing the associated encoded data file in a bit-wise manner based on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file. The requested operation may relate to one or more of a calculation operation, a lookup operation, an append operation, a split operation, a join operation, and a concatenation operation. The associated encoded data file may be easier to process than the unencoded data file. The associated encoded data file may require less computational overhead than the unencoded data file.

[0010] In another implementation, a computing system including a processor and a memory is configured to perform operations including processing an 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 to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, generating an associated encoded data file based at least in part on the plurality of mappings; accepting a request to operate on the unencoded data file; and processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of the requested operation on the unencoded data file.

[0011] One or more of the following features may be included: Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include one or more of performing a homogeneous encoding operation and performing a non-homogeneous encoding operation. The associated encoded data file may include one or more of an associated compressed data file or an associated encrypted data file. The dictionary file may include a plurality of discrete entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file may include processing the associated encoded data file in a byte-by-byte manner based on a plurality of mappings and the dictionary file to generate a modified encoded data file representative of a request operation on the unencoded data file. The dictionary file may include a plurality of concatenated entries. Processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file may include processing the associated encoded data file in a bit-wise manner based on the plurality of mappings and the dictionary file to generate a modified encoded data file representative of a requested operation on the unencoded data file. The requested operation may relate to one or more of a calculation operation, a lookup operation, an append operation, a split operation, a join operation, and a concatenation operation. The associated encoded data file may be easier to process than the unencoded data file. The associated encoded data file may require less computational overhead than the unencoded data file. Effect of the Invention

[0012] The details of one or more implementations are set forth in the accompanying drawings and the description below. Other features and advantages will become apparent from the description, drawings, and claims. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a diagram of a distributed computing network including computing devices that perform encoding / decoding processes according to embodiments of the present disclosure. [Diagram 2] 2 is a diagrammatic view of various content accessible by the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Diagram 3] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 4] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Diagram 5] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 6] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 7] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 8] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 9] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 10] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 11] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 12] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 13] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 14] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 15] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 16]2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 17] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 18] 2 is a flowchart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. [Figure 19] 2 is a flow chart of the encoding / decoding process of FIG. 1 according to an embodiment of the present disclosure. Like reference symbols in the various drawings refer to like elements. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] System Overview Referring to FIG. 1, an encoding / decoding process 10 is shown. The encoding / decoding process 10 may be implemented as a server-side process, a client-side process, or a hybrid server-side / client-side process. For example, the encoding / decoding process 10 may be implemented purely as a server-side process via encoding / decoding process 10s. Alternatively, the encoding / decoding process 10 may be implemented purely as a client-side process via encoding / decoding process 10c1, encoding / decoding process 10c2, encoding / decoding process 10c3, and encoding / decoding process 10c4. Also alternatively, the encoding / decoding process 10 may be implemented as a hybrid server-side / client-side process via encoding / decoding process 10s combined with one or more of encoding / decoding process 10c1, encoding / decoding process 10c2, encoding / decoding process 10c3, and encoding / decoding process 10c4. Thus, the encoding / decoding process 10 used in this disclosure may include any combination of encoding / decoding process 10s, encoding / decoding process 10c1, encoding / decoding process 10c2, encoding / decoding process 10c3, and encoding / decoding process 10c4.

[0015] The encoding / decoding process 10s may be a server application and may reside on and be executed by a computing device 12 that may be connected to a network 14 (e.g., the Internet or a local area network). Examples of computing devices 12 may include, but are not limited to, a personal computer, a server computer, a series of server computers, a minicomputer, a mainframe computer, a smartphone, or a cloud-based computing platform.

[0016] The instruction sets and subroutines of the encoding / decoding process 10s may be stored on a storage device 16 coupled to the computing device 12 and may be executed by one or more processors (not shown) and one or more memory architectures (not shown) contained within the computing device 12. Examples of storage devices 16 may include, but are not limited to, hard disk drives, RAID devices, random access memory (RAM), read only memory (ROM), and all forms of flash memory storage devices.

[0017] Network 14 may be connected to one or more secondary networks (eg, network 18), examples of which may include, but are not limited to, a local area network, a wide area network, or an intranet.

[0018] Examples of the encoding / decoding processes 10c1, 10c2, 10c3, and 10c4 are a web browser, a game console user interface, a mobile device user interface, or a dedicated application (e.g., Android tm Platform: IOS tm Platform, Windows tmThe encoding / decoding processes 10c1, 10c2, 10c3, 10c4 may include, but are not limited to, applications running on a Linux platform, a Linux platform, or a UNIX platform, etc. The instruction sets and subroutines of the encoding / decoding processes 10c1, 10c2, 10c3, 10c4 may be stored in the storage devices 20, 22, 24, 26 (respectively) coupled to the client electronic devices 28, 30, 32, 34 (respectively) and may be executed by one or more processors (not shown) and one or more memory architectures (not shown) incorporated in the client electronic devices 28, 30, 32, 34 (respectively). Examples of the storage devices 20, 22, 24, 26 may include, but are not limited to, hard disk drives, RAID devices, random access memory (RAM), read only memory (ROM), and any form of flash memory storage device.

[0019] Examples of client electronic devices 28, 30, 32, 34 may include, but are not limited to, a smart phone (not shown), a personal digital assistant (not shown), a tablet computer (not shown), a laptop computer 28, 30, 32, a personal computer 34, a notebook computer (not shown), a server computer (not shown), a gaming console (not shown), and a dedicated network device (not shown). Each of client electronic devices 28, 30, 32, 34 executes an operating system, an example of which is Microsoft Windows tm , Android tm , iOS tm , Linux tm , or a custom operating system.

[0020] Users 36, 38, 40, 42 may access the encoding / decoding process 10 directly through the network 14 or through a secondary network 18. Additionally, the encoding / decoding process 10 may be connected to the network 14 through the secondary network 18, as shown by link line 44.

[0021] Various client electronic devices (e.g., client electronic devices 28, 30, 32, 34) may be directly or indirectly coupled to network 14 (or network 18). For example, laptop computer 28 and laptop computer 30 are shown wirelessly coupled to network 14 via wireless communication channels 44, 46 (respectively) established between laptop computers 28, 30 (respectively) and a cellular network / bridge 48 that is directly coupled to network 14 as shown. Additionally, laptop computer 32 is shown wirelessly coupled to network 14 via wireless communication channel 50 established between laptop computer 32 and a wireless access point (i.e., WAP) 52 that is directly coupled to network 14 as shown. Additionally, personal computer 34 is shown directly coupled to network 18 via a wired network connection.

[0022] WAP 52 may be, for example, an IEEE 802.11a, 802.11b, 802.11g, 802.11n, Wi-Fi, and / or Bluetooth device capable of establishing a wireless communication channel 50 between laptop computer 32 and WAP 52. As is known in the art, the IEEE 802.11x specification may use Ethernet protocols and carrier sense multiple access with collision avoidance (i.e., CSMA / CA) for path sharing. As is known in the art, Bluetooth is a telecommunications industry specification for interconnecting, for example, cell phones, computers, and personal digital assistants using short-range wireless connections.

[0023] The encoding / decoding process 2, as discussed in more detail below, encoding / decoding process 10 may be configured to enable encoding and subsequent decoding of data (e.g., first data file 100). Examples of such encoding / decoding may include, but are not limited to, compression / decompression and encryption / decryption. Furthermore, as discussed in more detail below, encoding / decoding process 10 may be configured to enable manipulation of encoded data (e.g., compressed and / or encrypted data) without the need to first decode (e.g., decompress and / or decrypt) such encoded data. · Compression / Decompression; As is well known in the art, data compression (or source coding or bit rate reduction) is the process of encoding information using fewer bits than the original representation. A particular compression can be either lossy or lossless. Lossless compression reduces bits by identifying and eliminating statistical redundancies. In lossless compression, no information is lost. Lossy compression reduces bits by removing unnecessary or less important information. Generally, a device that performs data compression is called an encoder, and one that performs the reverse (decompression) of this process is called a decoder. The process of reducing the size of a data file is often referred to as data compression. In the context of data transmission, this is called source coding, which is the encoding that occurs at the source of the data before it is stored or transmitted. Compression is beneficial because it reduces the resources required to store and transmit data. The compression and decompression processes consume computational resources. Data compression involves a time-space-complexity tradeoff. For example, compression schemes for video require expensive hardware to decompress the video fast enough to view it when decompressed, and the option to decompress the entire video before viewing may be inconvenient or require additional storage. The design of a data compression scheme involves tradeoffs between a variety of factors, including the degree of compression, the amount of distortion introduced (when using lossy data compression), and the computational resources required to compress and decompress the data. · Encryption / Decryption: As is well known in the art, data encryption is the process of encoding information, which converts the original representation of the information (known as plaintext) into an alternative form (known as ciphertext). Ideally, only authorized parties can decrypt the ciphertext to plaintext and access the original information. Encryption in itself does not prevent tampering, but it does deny content that is understandable to would-be eavesdroppers. For technical reasons, encryption schemes usually use pseudorandom encryption keys that are generated by algorithms. While it is possible to decrypt messages without processing the key, well-designed encryption schemes require significant computational resources and skill. Authorized recipients can easily decrypt messages with a key that is provided to the recipient by the sender but not to unauthorized users. Historically, various forms of encryption have been used to supplement cryptography. Early encryption techniques were mostly used in military message exchange. Since then, new techniques have emerged and are commonplace in all areas of modern computing. Because modern computers are inefficient at decrypting codes, modern encryption schemes can ensure security using the concepts of public and symmetric keys.

[0024] System Overview The following discussion relates to a system overview of the encoding / decoding process 10 .

[0025] Referring also to FIG. 3, the encoding / decoding process 10 may encode (200) a first data file (e.g., first data file 100) to generate an associated encoded data file (e.g., associated encoded data file 102) based at least in part on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., dictionary file 106).

[0026] This first data file (e.g., first data file 100) may be essentially any type of data file, examples of which may include, but are not limited to, a first compressed data file, a first uncompressed data file, a first encrypted data file, a first unencrypted data file, a first encoded data file, and a first unencoded data file.

[0027] As discussed in more detail below, each of the multiple mappings (e.g., multiple mappings 104) may include a start position and length that points to a particular portion of a dictionary file (e.g., dictionary file 106). An example of such a mapping is <ij>A dictionary file (e.g., dictionary file 106) may include, but is not limited to, a pair, where "I" refers to a starting position (within dictionary file 106) and "J" refers to the length of the data being pointed to. As discussed in more detail below, a dictionary file (e.g., dictionary file 106) may include multiple discrete entries or multiple linked entries.

[0028] Generally, the dictionary file (e.g., dictionary file 106) may act as a cipher to encode / decode the first data file 100. In one non-limiting example, the dictionary file (e.g., dictionary file 106) may contain all possible number combinations having a defined bit length, which may vary depending on the design criteria of the encoding / decoding process 10.

[0029] For purposes of illustration only, assume that dictionary file 106 contains entries with a defined bit length of 4 bits. As is well known in the art, a 4-bit entry is 2 4 Possible values ​​of, i.e., 0000 (the binary representation of the decimal value 0) 0001 (the binary representation of the decimal value of 1) 0010 (the binary representation of the decimal value 2) 0011 (the binary representation of the decimal value 3) 0100 (the binary representation of the decimal value 4) 0101 (the binary representation of the decimal value 5) 0110 (the binary representation of the decimal value 6) 0111 (the binary representation of the decimal value 7) 1000 (the binary representation of the decimal value of 8) 1001 (the binary representation of the decimal value of 9) 1010 (the binary representation of the decimal value of 10) 1011 (the binary representation of the decimal value of 11) 1100 (the binary representation of the decimal value of 12) 1101 (the binary representation of the decimal value 13) 1110 (the binary representation of the decimal value 14) 1111 (the binary representation of the decimal value 15) has.

[0030] Thus, dictionary file 106 may include entries that define each of the 16 possible values. Although the above example is of dictionary file 106 including entries having a defined bit length of 4 bits, this is for illustrative purposes only and is not intended to be a limitation of this disclosure, as other configurations are possible and are considered to be within the scope of this disclosure. Additionally, entries defined within dictionary file 106 may have defined bit lengths greater than 4 bits (e.g., 8 bits, 16 bits, 32 bits, 64 bits).

[0031] As noted above, a dictionary file (eg, dictionary file 106) may contain multiple discrete entries or multiple linked entries.

[0032] When a dictionary file (eg, dictionary file 106) contains multiple discrete entries, dictionary file 106 may be structured as follows. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 · Each entry in a dictionary file (eg, dictionary file 106) is separated (eg, by a black space, comma, or slash), resulting in 16 discrete entries (in this example).

[0033] When a dictionary file (eg, dictionary file 106) contains multiple linked entries, dictionary file 106 may be structured as follows. 0000000100100011010001010110011110001001101010111100110111101111 Each entry in a dictionary file (e.g., dictionary file 106) is not separated, resulting in (in this example) 16 concatenated entries joined end-to-end to form (in this example) a single 64-bit dictionary file.

[0034] As discussed above, each of the plurality of mappings (e.g., the plurality of mappings 104) includes a start position and a length that points to a particular portion of the dictionary file (e.g., the dictionary file 106). One such example of these mappings is: <ij>This may include, but is not limited to, a pair.

[0035] The first data file 100 to be encoded is 0111 1011 1001 1111 Assume that.

[0036] Thus, when the encoding / decoding process 10 encodes (200) the first data file 100, the resulting encoded data file (e.g., the associated encoded data file 102) may include four mappings (e.g., the plurality of mappings 104) that map to appropriate portions of the dictionary file 106. A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in dictionary file 106 by specifying a 60-bit offset from the start of dictionary file 106 and a 4-bit read length.

[0037] Thus, in the above example, when the encoding / decoding process 10 encodes (200) a first data file 100 (e.g., 0111 1011 1001 1111), the resulting encoded data file (e.g., associated encoded data file 102) may contain four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). Thus, through the use of these four mappings (i.e., associated encoded data file 102), data file 100 may be decoded by regenerating first data file 100 using multiple mappings (e.g., multiple mappings 104). Specifically, the first mapping <28 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 0111 in the dictionary file 106, can be obtained from the dictionary file 106; the second mapping <44 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 1011 in the dictionary file 106, can be obtained from the dictionary file 106; the third mapping <36 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 1001 in the dictionary file 106, can be obtained from the dictionary file 106; and The fourth mapping <60 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 to obtain from the dictionary file 106 the data portion indicated by this mapping, i.e. the data portion 1111 in the dictionary file 106.

[0038] Thus, through use of the dictionary file 106 and a number of mappings 104 contained within the associated encoded data file 102, the first data file 100 may be obtained.

[0039] When encoding (200) a first data file (e.g., first data file 100) to generate an associated encoded data file (e.g., associated encoded data file 102) based at least in part on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., dictionary file 106), the encoding / decoding process 10 may compress (202) an unencoded data file (e.g., first data file 100) to generate the associated encoded data file (e.g., associated encoded data file 102) and / or encrypt (204) the unencoded data file (e.g., first data file 100) to generate the associated encoded data file (e.g., associated encoded data file 102).

[0040] The encoding / decoding process 10 may receive (206) a request (e.g., request 160) to operate on a first data file (e.g., first data file 100), where the requested operation may involve one or more of a calculation operation, a search operation, an append operation, a division operation, a join operation, and a concatenation operation.

[0041] As is well known in the art, A calculation operation may include, but is not limited to, a request operation that mathematically manipulates a first data file (eg, first data file 100). The search operation may include, but is not limited to, a request operation to search a first data file (eg, first data file 100). An append operation may include, but is not limited to, a request to append (ie, append) to a first data file (eg, first data file 100). A split operation may include, but is not limited to, a request to split (ie, divide) a first data file (eg, first data file 100). A combine operation may include, but is not limited to, a request to combine a first data file (eg, first data file 100) with one or more other data files (not shown). A join operation may include, but is not limited to, a request to combine a first data file (eg, first data file 100) with another data file (not shown).

[0042] The encoding / decoding process 10 may then process (208) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the first data file (e.g., the first data file 100).

[0043] As discussed above, the encoding / decoding process 10 may be configured to enable manipulation of encoded data (e.g., compressed and / or encrypted data) without first having to decode (e.g., decompress and / or decrypt) such encoded data.

[0044] Continuing with the above example, assume that the encoding / decoding process 10 encodes (200) a first data file 100 (e.g., 0111 1011 1001 1111) into an associated encoded data file 102 (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). Assume further that the encoding / decoding process 10 receives (206) a request (e.g., request 160) to add 27 to the first data file 100 (e.g., 0111 1011 1001 1111).

[0045] Thus, when processing (208) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on a first data file (e.g., first data file 100), the encoding / decoding process 10 may utilize the mapping in the associated encoded data file (e.g., associated encoded data file 102) to obtain the appropriate data portion in the dictionary file 106. It is important to note that such processing (208) operations do not require the manipulation / modification / decoding of the associated encoded data file (e.g., associated encoded data file 102). All that is required is that the mapping 104 in the associated encoded data file 102 be read so that the relevant data portion can be obtained from the dictionary file (e.g., dictionary file 106).

[0046] Thus, when processing 208 an associated encoded data file (e.g., associated encoded data file 102), the first mapping <28 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 0111 in the dictionary file 106, can be obtained from the dictionary file 106; the second mapping <44 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 1011 in the dictionary file 106, can be obtained from the dictionary file 106; the third mapping <36 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 so that the data portion indicated by this mapping, i.e. the data portion 1001 in the dictionary file 106, can be obtained from the dictionary file 106; and The fourth mapping <60 / 4> in the associated encoded data file 102 is used by the encoding / decoding process 10 to obtain from the dictionary file 106 the data portion indicated by this mapping, i.e. the data portion 1111 in the dictionary file 106.

[0047] Thus, through use of the dictionary file 106 and a number of mappings 104 contained within the associated encoded data file 102, a first data file 100 (e.g., 0111 1011 1001 1111) may be obtained. Once obtained, the encoding / decoding process 10 may perform the operations specified in the request (e.g., request 160) that is received (206).

[0048] In this illustrative particular example, the request (e.g., request 160) that is received (206) is for adding 27 to the first data file 100 (e.g., 0111 1011 1001 1111). As is well known in the art, the 16-bit representation of 27 is 0000 0000 0001 1011. Thus, when processing (208) the associated encoded data file (e.g., associated encoded data file 102), encoding / decoding process 10 adds 0000 0000 0001 1011 to 0111 1011 1001 1111 (i.e., first data file 100) to obtain a result (e.g., result 110) of 0111 1011 1011 1010.

[0049] When processing (208) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a requested operation on a first data file (e.g., first data file 100), the encoding / decoding process 10 may, for example, perform (210) homomorphic and / or non-homomorphic encoding operations on the result 110.

[0050] When processing (208) an associated encoded data file (e.g., associated encoded data file 102) as described above, encoding / decoding process 10 defines result 110 (e.g., 0111 1011 1011 1010), which may be encoded via a homomorphic or non-homomorphic encryption process. For example, if encoding / decoding process 10 encodes result 110 using the same encoding procedure used to encode first data file 100, this may be referred to as performing (210) a homomorphic encoding operation on result 110 (because both encoding operations are the same). Conversely, if encoding / decoding process 10 encodes result 110 using a different encoding procedure than used to encode first data file 100, this may be referred to as performing (210) a non-homomorphic encoding operation on result 110 (because the encoding operations are different).

[0051] The encoding / decoding process 10 further comprises: processing (208) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representative of the request operation on the first data file (e.g., the first data file 100); processing (212) an associated encoded data file (e.g., the associated encoded data file 102) in a byte-by-byte manner based on the plurality of mappings (e.g., the plurality of mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing a request operation on a first data file (e.g., the first data file 100); process (214) the associated encoded data file (e.g., the associated encoded data file 102) in a bit-wise manner based on the plurality of mappings (e.g., the plurality of mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the first data file (e.g., the first data file 100); and / or Based on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106), the associated encoded data file (e.g., associated encoded data file 102) may be processed (216) utilizing a sampling window to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the first data file (e.g., first data file 100).

[0052] Assume that the encoding / decoding process 10 encodes the result 110 (e.g., 0111 1011 1011 1010) using the same encoding procedure (i.e., using the dictionary file 106) used to encode the first data file 100. Thus, when encoding the result 110 (e.g., 0111 1011 1011 1010) to generate the modified encoded data file 108, the encoding / decoding process 10 may scan the result 110 (e.g., 0111 1011 1011 1010) to define a mapping that points to various portions of the result 110 (e.g., 0111 1011 1011 1010) in the dictionary file 106.

[0053] As discussed above, a dictionary file (e.g., dictionary file 106) may contain entries defining each of the 16 possible values ​​listed above, i.e., 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Includes.

[0054] Thus, when the encoding / decoding process 10 scans the result 110 (e.g., 0111 1011 1011 1010) and defines mappings that point to various portions of the result 110 (e.g., 0111 1011 1011 1010) in the dictionary file 106, the encoding / decoding process 10 may define the following mappings for inclusion in the modified encoded data file 108: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <44 / 4> that maps to 1011 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <40 / 4> that maps to 1010 in dictionary file 106 by specifying a 60-bit offset from the start of dictionary file 106 and a 4-bit read length.

[0055] Thus, the encoding / decoding process 10 may utilize the dictionary file 106 to encode the result 110 (e.g., 0111 1011 1011 1010) into a modified encoded data file 108 that includes multiple mappings as above (e.g., <28 / 4><44 / 4><44 / 4><40 / 4>).

[0056] As described above, the encoding / decoding process 10 may scan the results 110 (e.g., 0111 1011 1011 1010) to define a mapping that points to various portions of the results 110 (e.g., 0111 1011 1011 1010) in the dictionary file 106. And when performing such a scanning operation, the encoding / decoding process 10 may process (216) the associated encoded data file (e.g., associated encoded data file 102) utilizing a sampling window, which may define the size (e.g., in bits or bytes) of the portion of the dictionary file that is being scanned for matches with the results 110 (in this example). In the above example, the sampling window is 4 bits. However, this is for illustrative purposes only and is not intended to be a limitation of the present disclosure, as other configurations are possible and are considered to be within the scope of the present disclosure. For example, the window may be larger (e.g., 8 bits, 16 bits, 32 bits, 64 bits), resulting in matches occurring less frequently, but with a greater benefit when matches are found. Conversely, the window may be small (eg, 2), resulting in frequent matches, but with a smaller benefit when a match is found.

[0057] Then, when performing such a scanning operation, encoding / decoding process 10 may process (214) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner, with the sampling window shifting by one bit during the time between scans. Conversely, when processing (212) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner, the sampling window shifts by one bit during the time between scans.

[0058] In computer programming, bitwise operations operate at the level of individual bits on bit strings, bit arrays, or binary numbers (thought of as bit strings). It is a fast and simple operation that is the basis of high-level arithmetic operations and is directly supported by processors. Most bitwise operations are presented as two-operand instructions, with the result replacing one of the input operands. Conversely, bytewise operations operate at the level of bytes (i.e., groups of bits) on bit strings, bit arrays, or binary numbers (thought of as bit strings). In simple, low-cost processors, bitwise operations are generally substantially faster than division, several times faster than multiplication, and sometimes much faster than addition. Modern processors usually perform addition and multiplication just as fast as bitwise operations due to long instruction pipelines and other architectural design choices, but bitwise operations usually use less power due to reduced resource usage.

[0059] High Level Systems The following discussion focuses on the encoding / decoding process 10. Referring also to Figure 4, the encoding / decoding process 10 may encode (250) an unencoded data file (e.g., first data file 100) to generate an associated encoded data file (e.g., associated encoded data file 102) based at least in part on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., dictionary file 106).

[0060] As discussed above, when encoding (250) an unencoded data file (e.g., the first data file 100) to generate an associated encoded data file (e.g., the associated data file 102) based at least in part on multiple mappings (e.g., the multiple mappings 104) to multiple portions of a dictionary file (e.g., the dictionary file 106), the encoding / decoding process 10 may compress (252) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102) and / or encrypt (254) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102).

[0061] As discussed above, the encoding / decoding process 10 may receive (256) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the received (256) request (e.g., request 160) involves adding 27 to the first data file 100.

[0062] As discussed above, the encoding / decoding process 10 may process (258) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) that represents a requested operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0063] As discussed above, the encoding / decoding process 10 may perform (260) homogeneous and / or non-homogeneous encoding operations when processing (258) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0064] As discussed above, when processing (258) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: The associated encoded data file (e.g., associated encoded data file 102) may be processed (262) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); process (264) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner to generate a modified encoded data file 108 (e.g., in the manner described above); and / or The sampling window may be utilized to process (266) an associated encoded data file (eg, associated encoded data file 102) to generate a modified encoded data file (108) (eg, in the manner described above).

[0065] Generic Mapping The following discussion relates to an overview of mapping in the encoding / decoding process 10. Referring also to Figure 5, the encoding / decoding process 10 may receive (300) an unencoded data file (eg, the first data file 100).

[0066] The encoding / decoding process 10 may process (302) an unencoded data file (e.g., the first data file 100) to identify a number of file segments (e.g., the number of file segments 112). As discussed in the above example, the first data file (e.g., the first data file 100) may include: 0111 1011 1001 1111 It is.

[0067] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111. The encoding / decoding process 10 may generate a plurality of mappings (e.g., the plurality of mappings 104) by mapping (304) each of the plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106), where each of the plurality of mappings (e.g., the plurality of mappings 104) may include a start position and a length.

[0068] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0069] The encoding / decoding process 10 may then generate (306) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104). As discussed above, in this example, the associated encoded data file (e.g., associated encoded data file 102) may include four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>).

[0070] As discussed above, when generating (306) an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104), the encoding / decoding process 10 may generate (308) an associated compressed data file based at least in part on the multiple mappings (e.g., the multiple mappings 104) and / or may generate (310) an associated encrypted data file based at least in part on the multiple mappings (e.g., the multiple mappings 104).

[0071] The encoding / decoding process 10 may receive (312) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (312) (e.g., request 160) involved adding 27 to the first data file 100.

[0072] The encoding / decoding process 10 may process (314) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the requested operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0073] As discussed above, the encoding / decoding process 10 may perform (316) homogeneous and / or non-homogeneous encoding operations when processing (314) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a requested operation on an unencoded data file (e.g., first data file 100).

[0074] When processing (314) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: The associated encoded data file (e.g., associated encoded data file 102) may be processed (318) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); process (320) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner to generate a modified encoded data file 108 (e.g., in the manner described above); and / or The sampling window may be utilized to process (322) an associated encoded data file (eg, associated encoded data file 102) to generate a modified encoded data file 108 (eg, in the manner described above).

[0075] Isomorphism The following discussion pertains to an overview of homomorphic encoding in encoding / decoding process 10. Referring also to Figure 6, encoding / decoding process 10 may encode (350) an unencoded data file (e.g., first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., dictionary file 106) to generate an associated encoded data file (e.g., associated encoded data file 102).

[0076] As discussed above, when encoding (350) an unencoded data file (e.g., the first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., the dictionary file 106) to generate an associated encoded data file (e.g., the associated encoded data file 102), the encoding / decoding process 10 may compress (352) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102).

[0077] When encoding (350) an unencoded data file (e.g., the first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., the dictionary file 106) to generate an associated encoded data file (e.g., the associated encoded data file 102), the encoding / decoding process 10 may encrypt (354) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102).

[0078] The encoding / decoding process 10 receives (356) a request (e.g., request 160) to operate on an unencoded data file (e.g., first data file 100), the request (e.g., request 160) requesting that a first sequence of operations be performed on the unencoded data file (e.g., first data file 100). The requested operations may relate to one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (356) related to adding 27 to the first data file 100.

[0079] The encoding / decoding process 10 may process (358) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108), where processing the associated encoded data file (e.g., associated encoded data file 102) may include performing a first sequence of operations on the encoded data file to accomplish a requested operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the plurality of mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0080] As discussed above, the encoding / decoding process 10 may perform (360) a homogeneous encoding operation when processing (358) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on a plurality of mappings (e.g., plurality of mappings 104) and a dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108).

[0081] When processing (358) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108), the encoding / decoding process 10: The associated encoded data file (e.g., associated encoded data file 102) may be processed (362) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); process (364) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner to generate a modified encoded data file 108 (e.g., in the manner described above); and / or The sampling window may be utilized to process (366) an associated encoded data file (eg, associated encoded data file 102) to generate a modified encoded data file 108 (as described above).

[0082] non-isomorphic The following discussion relates to an overview of non-homomorphic encoding in encoding / decoding process 10. Referring also to Figure 7, encoding / decoding process 10 may encode (400) an unencoded data file (e.g., first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., dictionary file 106) to generate an associated encoded data file (e.g., associated encoded data file 102).

[0083] As discussed above, when encoding (400) an unencoded data file (e.g., the first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., the dictionary file 106) to generate an associated encoded data file (e.g., the associated encoded data file 102), the encoding / decoding process 10 may compress (402) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102).

[0084] When encoding (400) an unencoded data file (e.g., the first data file 100) based on multiple mappings (e.g., multiple mappings 104) to multiple portions of a dictionary file (e.g., the dictionary file 106) to generate an associated encoded data file (e.g., the associated encoded data file 102), the encoding / decoding process 10 may encrypt (404) the unencoded data file (e.g., the first data file 100) to generate the associated encoded data file (e.g., the associated encoded data file 102).

[0085] The encoding / decoding process 10 may receive (406) a request (e.g., request 160) to operate on an unencoded data file (e.g., first data file 100), where the request (e.g., request 160) requests that a first sequence of operations be performed on the unencoded data file (e.g., first data file 100). The requested operations may relate to one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (406) related to adding 27 to the first data file 100.

[0086] The encoding / decoding process 10 may process (408) an associated encoded data file (e.g., associated encoded data file 102) based on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108), where processing the associated encoded data file (e.g., associated encoded data file 102) may include performing a second sequence of operations on the encoded data file to accomplish the requested operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0087] Since this is a non-homomorphic encoding operation, the second operation sequence cannot be identical to the first operation sequence that would result in a homomorphic encoding operation, and therefore, since this second operation sequence is a non-homomorphic encoding operation, it may differ from (or only partially resemble) the first operation sequence.

[0088] As discussed above, the encoding / decoding process 10 may perform (410) a non-homomorphic encoding operation when processing (408) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on a plurality of mappings (e.g., plurality of mappings 104) and a dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108).

[0089] When processing (408) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108), the encoding / decoding process 10 includes: The associated encoded data file (e.g., associated encoded data file 102) may be processed (412) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); process (414) the associated encoded data file (e.g., associated encoded data file 102) in a bit-wise manner to generate a modified encoded data file 108 (e.g., in the manner described above); and / or The sampling window may be utilized to process (416) an associated encoded data file (eg, associated encoded data file 102) to generate a modified encoded data file 108 (as described above).

[0090] Encoded data (in transit) The following discussion pertains to the use case of the encoding / decoding process 10 with respect to encoded data in transit. Referring also to Figure 8, the encoding / decoding process 10 may process (450) an unencoded data file (e.g., the first data file 100) to identify multiple file segments (e.g., the multiple file segments 112).

[0091] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0092] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0093] The encoding / decoding process 10 may map (452) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of which may include a starting position and a length, such that an associated encoded data file (e.g., the associated encoded data file 102) may be generated based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0094] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0095] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0096] When mapping (452) each of the multiple segments (e.g., the multiple file segments 112) to a portion of the dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the multiple mappings 104) and generating an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104), each of the multiple mappings (e.g., the multiple mappings 104) including a start location and a length, the encoding / decoding process 10 may map (454) each of the multiple file segments (e.g., the multiple file segments 112) to a portion of the dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the multiple mappings 104), each of the multiple mappings (e.g., the multiple mappings 104) including a start location and a length, and generating an associated encoded data file (e.g., the associated encoded data file 102) at a first location (e.g., the first location 114) based at least in part on the multiple mappings (e.g., the multiple mappings 104), each of the multiple mappings (e.g., the multiple mappings 104) including a start location and a length.

[0097] The encoding / decoding process 10 may transmit (456) an associated encoded data file (e.g., associated encoded data file 102) from a first location (e.g., first location 114) to a second location (e.g., second location 116). Examples of such a first location (e.g., first location 114) may include, but are not limited to, a location where the associated encoded data file 102 is generated or initially stored. Examples of such a second location (e.g., second location 116) may include, but are not limited to, a location where the associated encoded data file 102 is transmitted or subsequently stored.

[0098] The encoding / decoding process 10 may receive (458) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (256) (e.g., request 160) involved adding 27 to the first data file 100.

[0099] The encoding / decoding process 10 may process (460) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a requested operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0100] As discussed above, the encoding / decoding process 10 may perform (462) homogeneous and / or non-homogeneous encoding operations when processing (460) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0101] When processing (460) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (464) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (as described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (466) in a bit-wise manner to generate a modified encoded data file 108 (as described above).

[0102] When processing (460) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the unencoded data file (e.g., the first data file 100), the encoding / decoding process 10 may process (468) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) at a second location (e.g., the second location 116) representing the request operation on the unencoded data file (e.g., the first data file 100).

[0103] Encoded data (during short-distance wireless transmission) The following discussion pertains to the use case of the encoding / decoding process 10 for encoded data in short-range wireless transfer. Referring also to Figure 9, the encoding / decoding process 10 may process (500) an unencoded data file (e.g., a first data file 100) to identify multiple file segments (e.g., multiple file segments 112).

[0104] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0105] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0106] The unencoded data file (e.g., first data file 100) may be a data set for use with a short-range wireless communication platform (e.g., short-range wireless communication platform 118). Examples of the short-range wireless communication platform (e.g., short-range wireless communication platform 118) may include one or more of a Bluetooth short-range wireless communication platform and a WiFi short-range wireless communication platform.

[0107] As is well known in the art, Bluetooth is a short-range wireless technology standard used to exchange data over short distances between fixed and mobile devices to create personal area networks (PANs). It employs UHF radio waves in the ISM band from 2.402 GHz to 2.48 GHz. It is primarily used to exchange files between nearby portable devices and as an alternative to wired connections to connect mobile phones and music players to wireless headphones. In its most widely used mode, transmission power is limited to 2.5 milliwatts, resulting in a very short range of up to 10 meters (33 feet).

[0108] As is well known in the art, Wi-Fi is a family of wireless networking protocols based on the IEEE 802.11 family of standards that are typically used for local area networking of devices and Internet access, allowing nearby digital devices to exchange data over radio waves. They are the most widely used computer networks in the world, used globally in home and small office networks to link between desktop and laptop computers, tablet computers, smartphones, smart TVs, printers, and smart speakers, and to wireless routers to connect them to the Internet, and in wireless access points in public places such as coffee shops, hotels, libraries, and airports to provide public Internet access to mobile devices.

[0109] The encoding / decoding process 10 may map (502) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of the plurality of mappings (e.g., the plurality of mappings 104) including a starting position and a length, and may generate an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0110] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0111] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0112] The encoding / decoding process 10 may transmit (504) an associated encoded data file (e.g., associated encoded data file 102) from a first location (e.g., first location 114) to a second location (e.g., second location 116) using a short-range wireless communication platform (e.g., short-range wireless communication platform 118). Examples of such a first location (e.g., first location 114) include, but are not limited to, a location where the associated encoded data file 102 is generated or initially stored. Examples of such a second location (e.g., second location 116) may include, but are not limited to, a location where the associated encoded data file 102 is transmitted or subsequently stored.

[0113] The encoding / decoding process 10 receives (506) a request (e.g., request 160) to operate on an unencoded data file (e.g., first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (506) (e.g., request 160) involved adding 27 to the first data file 100.

[0114] The encoding / decoding process 10 may process (508) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the requested operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0115] As discussed above, the encoding / decoding process 10 may perform (510) homogeneous and / or non-homogeneous encoding operations when processing (508) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0116] When processing (508) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (512) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (514) in a bit-wise manner to generate a modified encoded data file 108 (eg, in the manner described above).

[0117] When processing (508) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the unencoded data file (e.g., the first data file 100), the encoding / decoding process 10 may process (516) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) at a second location (e.g., the second location 116) representing the request operation on the unencoded data file (e.g., the first data file 100).

[0118] Encoded data (during long distance wireless transmission) The following discussion pertains to the use case of the encoding / decoding process 10 for encoded data in long-distance wireless transfer. Referring also to Figure 10, the encoding / decoding process 10 may process (550) an unencoded data file (e.g., a first data file 100) to identify multiple file segments (e.g., multiple file segments 112).

[0119] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0120] Thus, in this example, the plurality of segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0121] The unencoded data file (e.g., first data file 100) may be a data set for use with a long-range wireless communication platform (e.g., long-range wireless communication platform 120), examples of which may include one or more of a cellular-based long-range wireless communication platform, a microwave-based long-range wireless communication platform, and a satellite-based long-range wireless communication platform.

[0122] The encoding / decoding process 10 may map (552) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of the plurality of mappings (e.g., the plurality of mappings 104) including a starting position and a length, and may generate an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0123] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0124] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0125] The encoding / decoding process 10 may transmit (554) an associated encoded data file (e.g., associated encoded data file 102) from a first location (e.g., first location 114) to a second location (e.g., second location 116) using a long-range wireless communication platform (e.g., long-range wireless communication platform 120). Examples of such a first location (e.g., first location 114) may include, but are not limited to, a location where the associated data file 102 is generated or initially stored. Examples of the second location (e.g., second location 116) may include, but are not limited to, a location where the associated encoded data file 102 is transmitted or subsequently stored.

[0126] The encoding / decoding process 10 may receive (556) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (556) (e.g., request 160) involved adding 27 to the first data file 100.

[0127] The encoding / decoding process 10 may process (558) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0128] As discussed above, when processing (558) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10 may perform (560) homomorphic and / or non-homomorphic encoding operations.

[0129] When processing (558) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (562) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (564) in a bit-wise manner to generate a modified encoded data file 108 (eg, in the manner described above).

[0130] When processing (558) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the unencoded data file (e.g., the first data file 100), the encoding / decoding process 10 may process (566) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) at a second location (e.g., the second location 116) representing the request operation on the unencoded data file (e.g., the first data file 100).

[0131] Encoded Data (during direct binding transfer) The following discussion pertains to the use case of the encoding / decoding process 10 for encoded data in transit with a direct connection. Referring also to Figure 11, the encoding / decoding process 10 may process (600) an unencoded data file (e.g., a first data file 100) to identify multiple file segments (e.g., multiple file segments 112).

[0132] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0133] Thus, in this example, the plurality of file segments 112 includes four segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0134] An unencoded data file (e.g., first data file 100) may be a data set for use with a direct-coupled communication platform (e.g., direct-coupled communication platform 122). Examples of direct-coupled communication platforms (e.g., direct-coupled communication platform 122) may include one or more of a copper-based direct-coupled communication platform (e.g., a platform that uses coaxial cable), a twisted-pair-based direct-coupled communication platform (e.g., a platform that uses twisted conductor cable), and an optical-based direct-coupled communication platform (e.g., a platform that uses fiber optic cable).

[0135] The encoding / decoding process 10 may map (602) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of the plurality of mappings (e.g., the plurality of mappings 104) including a start position and a length, and may generate an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0136] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0137] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0138] The encoding / decoding process 10 may transmit (604) the associated encoded data file (e.g., associated encoded data file 102) from a first location (e.g., first location 114) to a second location (e.g., second location 116) using a direct-coupled communications platform (e.g., direct-coupled communications platform 122). Examples of such a first location (e.g., first location 114) include, but are not limited to, a location where the associated encoded data file 102 is generated or initially stored. Examples of such a second location (e.g., second location 116) may include, but are not limited to, a location where the associated encoded data file 102 is transmitted or subsequently stored.

[0139] The encoding / decoding process 10 may receive (606) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (606) involved adding 27 to the first data file 100.

[0140] The encoding / decoding process 10 may process (608) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the requested operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0141] As discussed above, the encoding / decoding process 10 may perform (610) homogeneous and / or non-homogeneous encoding operations when processing (608) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0142] When processing (608) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (612) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (614) in a bit-wise manner to generate a modified encoded data file 108 (eg, in the manner described above).

[0143] When processing (608) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the unencoded data file (e.g., the first data file 100), the encoding / decoding process 10 may process (616) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the multiple mappings (e.g., the multiple mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) at a second location (e.g., the second location 116) representing the request operation on the unencoded data file (e.g., the first data file 100).

[0144] Encoded data (transmitted wirelessly via satellite) The following discussion pertains to a use case of the encoding / decoding process 10 for encoded data in transit over the air via satellite. Referring also to Figure 12, the encoding / decoding process 10 may process (650) an unencoded data file (e.g., the first data file 100) to identify multiple file segments (e.g., the multiple file segments 112).

[0145] In the example discussed above, this first data file (e.g., first data file 100) 0111 1011 1001 1111 It is.

[0146] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0147] The unencoded data file (e.g., first data file 100) may be a data set for use in a satellite-based communications network (e.g., satellite-based communications network 124). Examples of satellite-based communications networks (e.g., satellite-based communications network 124) include: An Internet communications network including, for example, one or more satellites configured to provide Internet connectivity to individuals and businesses; A mesh communications network including one or more satellites configured to provide geographically distributed connectivity, for example to individuals and businesses; A telephone communications network, including one or more satellites, configured to provide telephone connections to, for example, individuals and businesses; An entertainment communications network including, for example, one or more satellites configured to provide entertainment connectivity to individuals and businesses; A surface-to-satellite communications network including one or more satellites configured to provide satellite uplink connectivity, for example to individuals and businesses; A satellite or satellite communications network including one or more satellites configured to provide satellite interlink connections, for example to individuals and businesses; and A satellite-to-surface communications network including one or more satellites configured to provide satellite downlink connectivity, e.g., to individuals and businesses; may include one or more of:

[0148] The encoding / decoding process 10 may map (652) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of the plurality of mappings (e.g., the plurality of mappings 104) including a starting position and a length, and may generate an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0149] As described above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0150] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0151] The encoding / decoding process 10 may transmit (654) the associated encoded data file (e.g., associated encoded data file 102) from a first location (e.g., first location 114) to a second location (e.g., second location 116) using a satellite-based communications network (e.g., satellite-based communications network 124). Examples of such a first location (e.g., first location 114) may include, but are not limited to, a location where the associated encoded data file 102 is generated or initially stored. Examples of such a second location (e.g., second location 116) may include, but are not limited to, a location where the associated encoded data file 102 is transmitted or subsequently stored.

[0152] The encoding / decoding process 10 may receive (656) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (656) (e.g., request 160) involved adding 27 to the first data file 100.

[0153] The encoding / decoding process 10 may process (658) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0154] As discussed above, when processing (658) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10 may perform (660) homomorphic and / or non-homomorphic encoding operations.

[0155] When processing (658) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (662) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (664) in a bit-wise manner to generate a modified encoded data file 108 (eg, in the manner described above).

[0156] When processing (658) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) representing the request operation on the unencoded data file (e.g., the first data file 100), the encoding / decoding process 10 may process (666) the associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104) and the dictionary file (e.g., the dictionary file 106) to generate a modified encoded data file (e.g., the modified encoded data file 108) at a second location (e.g., the second location 116) representing the request operation on the unencoded data file (e.g., the first data file 100).

[0157] Encoded data (storing) The following discussion pertains to the use case of the encoding / decoding process 10 with respect to stored encoded data. Referring also to Figure 13, the encoding / decoding process 10 may process (700) an unencoded data file (e.g., the first data file 100) to identify multiple file segments (e.g., the multiple file segments 112).

[0158] As discussed in the above example, a first data file (e.g., first data file 100) may include: 0111 1011 1001 1111 It is.

[0159] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0160] The encoding / decoding process 10 may map (702) each of a plurality of file segments (e.g., the plurality of file segments 112) to a portion of a dictionary file (e.g., the dictionary file 106) to generate a plurality of mappings (e.g., the plurality of mappings 104), each of the plurality of mappings (e.g., the plurality of mappings 104) including a starting position and a length, and may generate an associated encoded data file (e.g., the associated encoded data file 102) based at least in part on the plurality of mappings (e.g., the plurality of mappings 104).

[0161] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0162] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0163] Examples of associated encoded data files (eg, associated encoded data file 102) may include, but are not limited to, standard (ie, unstructured) data storage files and structured data storage files.

[0164] As is well known in the art, structured data is data that fits into a predefined data model and is therefore easy to parse. Structured data follows a tabular format with relationships between different rows and columns. Common examples of structured data are Excel files or SQL databases. Each of these have structured columns and rows that can be categorized. Structured data relies on the existence of a data model - a model for how data is stored, processed, and accessed. With a data model, each field is discrete and can be accessed separately or together with data from other fields. This makes structured data extremely powerful. It is possible to quickly aggregate data from various locations in the database.

[0165] As is well known in the art, unstructured data is information that does not have a predefined data model or is not organized in a predefined manner. Unstructured information is generally text heavy, but may contain data such as dates, numbers, and facts. This results in irregularities and ambiguities that make it difficult to understand using traditional programs compared to data stored in structured databases. Common examples of unstructured data include audio and video files, or No-SQL databases. The ability to store and process unstructured data has advanced significantly in recent years, and many new technologies and tools capable of storing specialized types of unstructured data have appeared on the market. For example, MongoDB is optimized for storing documents. In contrast, Apache Giraph is optimized for storing relationships between nodes.

[0166] The encoding / decoding process 10 may store (704) an associated encoded data file (eg, associated encoded data file 102) at a first location (eg, first location 114).

[0167] The encoding / decoding process 10 may receive (706) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (706) involved adding 27 to the first data file 100.

[0168] The encoding / decoding process 10 may process (708) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the requested operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0169] As discussed above, the encoding / decoding process 10 may perform (710) homogeneous and / or non-homogeneous encoding operations when processing (708) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0170] When processing (708) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (712) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (as described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (714) in a bit-wise manner to generate a modified encoded data file 108 (as described above).

[0171] Encoded data (stored in cloud storage) The following discussion pertains to a use case of the encoding / decoding process 10 for encoded data at rest in cloud-based storage. Referring also to Figure 14, the encoding / decoding process 10 may process (750) an unencoded data file (e.g., first data file 100) to identify multiple file segments (e.g., multiple file segments 112).

[0172] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0173] Thus, in this example, the plurality of segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0174] The encoding / decoding process 10 may map (752) each of a plurality of file segments (e.g., a plurality of file segments 112) to a portion of a dictionary file (e.g., a dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), where the plurality of mappings (e.g., a plurality of mappings 104) includes a starting position and a length, and may generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0175] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0176] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0177] The encoding / decoding process 10 may store (754) the associated encoded data file (e.g., the associated encoded data file 102) in a cloud-based storage platform (e.g., the cloud-based storage platform 126), where the associated encoded data file (e.g., the associated encoded data file 102) may have been generated at or outside of the cloud-based storage platform (e.g., the cloud-based storage platform 126).

[0178] As is well known in the art, cloud storage is a model of computer data storage in which digital data is stored in a logical pool called the "cloud." The physical storage spans many servers (sometimes in many locations), and the physical environment is typically owned and managed by a hosting company. These cloud storage providers are responsible for securing, protecting, and managing the physical environment, making the data available and accessible. People and organizations purchase or rent storage capacity from the provider to store user, organizational, or application data. Examples of such providers are Microsoft tm and Google tm and Amazon tm Includes.

[0179] Cloud storage services may be accessed through co-located cloud computing services or web services application programming interfaces (APIs), or by applications that use the APIs, such as cloud desktop storage, cloud storage gateways, or web-based content management systems.

[0180] The encoding / decoding process 10 may receive (756) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (756) (e.g., request 160) involved adding 27 to the first data file 100.

[0181] The encoding / decoding process 10 may process (758) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0182] As discussed above, when processing (758) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10 may perform (760) homogeneous and / or non-homogeneous encoding operations.

[0183] When processing (758) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (762) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (764) in a bit-wise manner to generate a modified encoded data file 108 (eg, in the manner described above).

[0184] Encoded data (processing) The following discussion pertains to use cases of the encoding / decoding process 10 with respect to the encoded data being processed. Referring also to Figure 15, the encoding / decoding process 10 may process (800) an unencoded data file (e.g., a first data file 100) to identify multiple file segments (e.g., multiple file segments 112).

[0185] As discussed above, this first data file (e.g., first data file 100) may include: 0111 1011 1001 1111 It is.

[0186] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0187] The encoding / decoding process 10 may map (802) each of a plurality of file segments (e.g., a plurality of file segments 112) to a portion of a dictionary file (e.g., a dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), each of which includes a starting position and a length, and thereby generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0188] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0189] Thus, in this example, an associated encoded data file (eg, associated encoded data file 102) may contain four mappings (eg, <28 / 4><44 / 4><36 / 4><60 / 4>).

[0190] The associated encoded data file (e.g., associated encoded data file 102) may be easier to process and / or require less computational overhead than the unencoded data file (e.g., first data file 100). As discussed above, the associated encoded data file 102 is a compressed data file, such that the associated encoded data file 102 is smaller in size than the first data file 100. Accordingly, the associated encoded data file 102 may be easier to process because the reduced size requires less computational overhead to transport / store / process the associated encoded data file 102.

[0191] The encoding / decoding process 10 may receive (804) a request (e.g., request 160) to operate on an unencoded data file (e.g., the first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (804) involved adding 27 to the first data file 100.

[0192] The encoding / decoding process 10 may process (806) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0193] As discussed above, the encoding / decoding process 10 may perform (808) homogeneous and / or non-homogeneous encoding operations when processing (806) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0194] When processing (806) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: Process (810) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (in the manner discussed above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (812) in a bit-wise manner to generate a modified encoded data file 108 (in the manner discussed above).

[0195] Encoded data (machine learning processing in progress) The following discussion relates to a use case of the encoding / decoding process 10 for encoded data in a machine learning process. Referring also to Figure 16, the encoding / decoding process 10 may process (850) an unencoded data file (e.g., the first data file 100) to identify a number of file segments (e.g., the number of file segments 112). The unencoded data file (e.g., the first data file 100) may be a data set for use in an ML process (e.g., the machine learning process 128).

[0196] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0197] Thus, in this example, the plurality of segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0198] As is well known in the art, machine learning (ML) is a field of inquiry that focuses on understanding and building ways to "learn," i.e., to utilize data to improve performance on some set of tasks. It is also viewed as a part of artificial intelligence. Machine learning algorithms build models based on example data, known as training data, to make predictions or decisions without being explicitly programmed to do so. Machine learning algorithms are used in a variety of applications, such as medicine, email filtering, speech recognition, and computer vision, where it is difficult or infeasible to develop traditional algorithms to perform the required tasks.

[0199] A subset of machine learning is closely related to computational statistics, which focuses on using computers to make predictions, but not all machine learning is statistical learning. The study of mathematical optimization adds a domain of methods, theories, and applications to the field of machine learning. Data mining is a related field of study that focuses on exploratory data analysis through unsupervised learning. Some implementations of machine learning use data and neural networks in a way that mimics the workings of biological brains. In applications to business problems, machine learning is also referred to as predictive analytics.

[0200] As is known in the art, a machine learning system or model may generally include an algorithm or combination of algorithms trained to recognize certain types of patterns. For example, machine learning approaches are generally divided into three categories depending on the nature of the available signals: supervised learning, unsupervised learning, and reinforcement learning. As is known in the art, supervised learning may involve presenting a computing device with example inputs given as "teachers" and their desired outputs, with the goal being to learn general rules that map the inputs to the outputs. In unsupervised learning, the learning algorithm is not labeled and is left to find structure in the inputs on its own. Unsupervised learning may be a goal in itself (discovering hidden patterns in the data) or a means to this end (feature learning). As is known in the art, reinforcement learning generally involves a computing device interacting with a dynamic environment in which it must perform a goal (such as driving a vehicle or playing a game against an opponent). As the machine learning system navigates through the problem space, it is provided with feedback similar to a reward and tries to maximize it. Although three example machine learning approaches have been provided, it will be recognized that other machine learning approaches are possible within the scope of this disclosure.

[0201] The encoding / decoding process 10 may map (852) each of a plurality of file segments (e.g., a plurality of file segments 112) to a portion of a dictionary file (e.g., a dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), each of which includes a starting position and a length, and thereby generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0202] As described above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0203] Thus, in this example, an associated encoded data file (e.g., associated encoded data file 102) may contain four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). One example of this associated encoded data file (e.g., associated encoded data file 102) may contain a large data set for use in an ML process (e.g., machine learning process 128).

[0204] The associated encoded data file (e.g., associated encoded data file 102) may be easier to process and / or require less computational overhead than the unencoded data file (e.g., first data file 100). As discussed above, the associated encoded data file 102 may be a compressed data file such that the associated encoded data file 102 is smaller in size than the first data file 100. Thus, due to this reduced size, the associated encoded data file 102 may be easier to process because transporting / storing / processing the associated encoded data file 102 requires less computational overhead.

[0205] The encoding / decoding process 10 may receive (854) a request (e.g., request 160) from an ML process (e.g., machine learning process 128) to operate on an unencoded data file (e.g., first data file 100), where the requested operation may relate to one or more of a calculation operation, a lookup operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (854) related to adding 27 to the first data file 100.

[0206] The encoding / decoding process 10 may process (856) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0207] As discussed above, the encoding / decoding process 10 may perform (858) homogeneous and / or non-homogeneous encoding operations when processing (856) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a requested operation on an unencoded data file (e.g., first data file 100).

[0208] When processing (856) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., unencoded data file 100), the encoding / decoding process 10: process (860) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (e.g., in the manner described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (862) in a bit-wise manner to generate a modified encoded data file 108 (as described above).

[0209] Encoded Data (Electronic Health Record Processing) The following discussion relates to a use case of the encoding / decoding process 10 for encoded data in processing electronic health records. Referring also to Figure 17, the encoding / decoding process 10 may process (900) an unencoded data file (e.g., first data file 100) to identify a number of file segments (e.g., file segments 112). The unencoded data file (e.g., first data file 100) may be a data set for use in an EHR process (e.g., EHR process 130).

[0210] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0211] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0212] As is well known in the art, an Electronic Health Record (EHR) is a systematic collection of patient and population health information that is stored electronically in a digital format. These records may be shared among different healthcare settings. Records are shared through networked enterprise-wide information systems or other information networks and exchanges. EHRs may contain a range of data including demographics, medical history, medications and allergies, immunization status, laboratory test results, radiology images, vital signs, personal statistics such as age and weight, and billing information.

[0213] The encoding / decoding process 10 may map (902) each of a plurality of file segments (a plurality of file segments 112) to a portion of a dictionary file (e.g., dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), each of which includes a starting position and a length, and thereby generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0214] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0215] Thus, in this example, an associated encoded data file (e.g., associated encoded data file 102) may contain four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). One example of this associated encoded data file (e.g., associated encoded data file 102) may contain a medical health record for use in an EHR process (e.g., EHR process 130).

[0216] The associated encoded data file (e.g., associated encoded data file 102) may be easier to process and / or require less computational overhead than the unencoded data file (e.g., first data file 100). As discussed above, the associated encoded data file 102 may be a compressed data file such that the associated encoded data file 102 is smaller in size than the first data file 100. Thus, due to this reduced size, the associated encoded data file 102 may be easier to process because transporting / storing / processing the associated encoded data file 102 requires less computational overhead.

[0217] The encoding / decoding process 10 may receive (904) a request (e.g., request 160) from an EHR process (e.g., EHR process 130) to operate on an unencoded data file (e.g., first data file 100), where the requested operation may relate to one or more of a calculation operation, a search operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request received (904) (e.g., request 160) related to adding 27 to the first data file 100.

[0218] The encoding / decoding process 10 may process (906) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0219] As discussed above, the encoding / decoding process 10 may perform (908) homomorphic and / or non-homomorphic encoding operations when processing (906) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0220] When processing (906) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (910) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate modified encoded data file 108 (as described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (912) in a bit-wise manner to generate a modified encoded data file 108 (as described above).

[0221] Encoded data (blockchain processing) The following discussion relates to a use case of the encoding / decoding process 10 for encoded data in a blockchain process. Referring also to FIG. 18, the encoding / decoding process 10 may process (950) an unencoded data file (e.g., the first data file 100) to identify a number of file segments (e.g., the number of file segments 112). The unencoded data file (e.g., the first data file 100) may be a data set for use in a blockchain process (e.g., the blockchain process 132).

[0222] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0223] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0224] As is well known in the art, blockchain is a type of distributed ledger technology (DLT) that consists of an expanding list of records called blocks that are securely linked together using cryptography. Each block contains a cryptographic hash of the previous block (generally represented as a Merkle tree with data nodes represented as leaves), a timestamp, and the transaction data. The timestamp proves that the transaction data existed when the block was created. Because each block contains information about the blocks that preceded it, it effectively forms a chain (compared to a linked list data structure), with each additional block linking to the block before it. As a result, blockchain transactions are irreversible in that, once recorded, the data in a given block cannot be retroactively changed without changing all subsequent blocks.

[0225] The encoding / decoding process 10 may map (952) each of a plurality of file segments (e.g., a plurality of file segments 112) to a portion of a dictionary file (e.g., a dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), each of which includes a starting position and a length, and thereby generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0226] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0227] Thus, in this example, an associated encoded data file (e.g., associated encoded data file 102) may include four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). One example of an associated encoded data file (e.g., associated encoded data file 102) may include a distributed ledger for use in a blockchain process (e.g., blockchain process 132).

[0228] This associated encoded data file (e.g., associated encoded data file 102) may be easier to process and / or require less computational overhead than an unencoded data file (e.g., first data file 100). As discussed above, the associated encoded data file 102 may be a compressed data file, resulting in the associated encoded data file 102 being smaller in size than the first data file 100. Thus, due to this reduced size, the associated encoded data file 102 may be easier to process because transporting / storing / processing the associated encoded data file 102 requires less computational overhead.

[0229] The encoding / decoding process 10 may receive (954) a request (e.g., request 160) from a block chain process (e.g., block chain process 132) to operate on an unencoded data file (e.g., first data file 100), where the requested operation may involve one or more of a calculation operation, a lookup operation, an append operation, a split operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (954) involved adding 27 to the first data file 100.

[0230] The encoding / decoding process 10 may process (956) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing the request operation on the unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0231] As discussed above, the encoding / decoding process 10 may perform (958) homogeneous and / or non-homogeneous encoding operations when processing (956) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0232] When processing (956) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (960) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (as described above); and / or · The associated encoded data file (eg, associated encoded data file 102) may be processed (962) in a bit-wise manner to generate a modified encoded data file 108 (as described above).

[0233] Encoded data (during disaster recovery process) The following discussion relates to a use case of the encoding / decoding process 10 for encoded data in a disaster recovery process. Referring also to Figure 19, the encoding / decoding process 10 may process (1000) an unencoded data file (e.g., a first data file 100) to identify a number of file segments (e.g., a number of file segments 112). The unencoded data file (e.g., a first data file 100) may be a data set for use in a disaster recovery process (e.g., a disaster recovery process 134).

[0234] As discussed in the example above, this first data file (e.g., first data file 100) may be: 0111 1011 1001 1111 It is.

[0235] Thus, in this example, the plurality of file segments 112 includes four file segments: a) 0111, b) 1011, c) 1001, and d) 1111.

[0236] Disaster recovery involves a set of policies, tools, and procedures that enable the recovery or continuation of vital technology infrastructure and systems after a natural or man-made disaster. Disaster recovery focuses on information technology (IT) or technical systems that support critical business functions that compromise business continuity. It involves maintaining the functionality of all essential business aspects despite a major disruptive event. It can therefore be considered a subset of business continuity. Disaster recovery assumes that the primary site is unrecoverable for a period of time and assumes the process of restoring data and services at a safe secondary site rather than restoring them at the original site.

[0237] The encoding / decoding process 10 may map (1002) each of a plurality of file segments (e.g., a plurality of file segments 112) to a portion of a dictionary file (e.g., a dictionary file 106) to generate a plurality of mappings (e.g., a plurality of mappings 104), each of which includes a starting position and a length, and thereby generate an associated encoded data file (e.g., an associated encoded data file 102) based at least in part on the plurality of mappings (e.g., a plurality of mappings 104).

[0238] As discussed above, one example of such a mapping is: A first mapping <28 / 4> that maps to 0111 in the dictionary file 106 by defining a 28-bit offset from the start of the dictionary file 106 and a 4-bit read length; A second mapping <44 / 4> that maps to 1011 in the dictionary file 106 by specifying a 44-bit offset from the start of the dictionary file 106 and a 4-bit read length; a third mapping <36 / 4> that maps to 1001 in dictionary file 106 by specifying a 36-bit offset from the start of dictionary file 106 and a 4-bit read length; and A fourth mapping <60 / 4> that maps to 1111 in the dictionary file 106 by defining a 60-bit offset from the start of the dictionary file 106 and a 4-bit read length; These may include, but are not limited to:

[0239] Thus, in this example, an associated encoded data file (e.g., associated encoded data file 102) may contain four mappings (e.g., <28 / 4><44 / 4><36 / 4><60 / 4>). One example of an associated encoded data file (e.g., associated encoded data file 102) may contain a restoration data set for use in a disaster recovery process (e.g., disaster recovery process 134).

[0240] The associated encoded data file (e.g., associated encoded data file 102) may be easier to process and / or require less computational overhead than the unencoded data file (e.g., first data file 100). As discussed above, the associated encoded data file 102 may be compressed data, such that the associated encoded data file 102 is smaller in size than the first data file 100. Thus, due to this reduced size, the associated encoded data file 102 may be easier to process because transporting / storing / processing the associated encoded data file 102 requires less computational overhead.

[0241] The encoding / decoding process 10 may receive (1004) a request (e.g., request 160) from a disaster recovery process (e.g., disaster recovery process 134) to operate on an unencoded data file (e.g., first data file 100), where the requested operation may relate to one or more of a calculation operation, a search operation, an append operation, a division operation, a join operation, and a concatenation operation. In the example discussed above, the request (e.g., request 160) received (1004) related to adding 27 to the first data file 100.

[0242] The encoding / decoding process 10 may process (1006) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100). In the example discussed above, the encoding / decoding process 10 utilized the multiple mappings 104 and the dictionary file 106 to generate a result 110, which was then encoded to generate the modified encoded data file 108.

[0243] As discussed above, the encoding / decoding process 10 may perform (1008) homomorphic and / or non-homomorphic encoding operations when processing (1006) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the multiple mappings (e.g., multiple mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100).

[0244] When processing (1006) an associated encoded data file (e.g., associated encoded data file 102) based at least in part on the plurality of mappings (e.g., plurality of mappings 104) and the dictionary file (e.g., dictionary file 106) to generate a modified encoded data file (e.g., modified encoded data file 108) representing a request operation on an unencoded data file (e.g., first data file 100), the encoding / decoding process 10: process (1010) the associated encoded data file (e.g., associated encoded data file 102) on a byte-by-byte basis to generate a modified encoded data file 108 (as described above); and / or An associated encoded data file (eg, associated encoded data file 102 ) may be processed ( 1012 ) in a bit-wise manner to generate a modified encoded data file 108 (in the manner described above).

[0245] Overview As will be appreciated by those skilled in the art, the present disclosure may be embodied as a method, a system, or a computer program product. Accordingly, the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, microcode, etc.), or an embodiment combining software and hardware aspects, all generally referred to herein as a "circuit," "module," or "system." Furthermore, the present disclosure may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium.

[0246] Any suitable computer usable or computer readable medium may be utilized. The computer usable or computer readable medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples of computer readable media (non-exhaustive list) may include: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a transmission medium such as that supporting the Internet or an intranet, or a magnetic storage device. By way of example, the computer usable or computer readable medium may be paper or another suitable medium on which the program is printed, since the program is captured electronically via optical scanning of the paper or other medium, and then edited, interpreted, or otherwise processed in a suitable manner if necessary, and stored in a computer memory. In the context of this document, a computer usable or computer readable medium may be a medium that can contain, store, communicate, propagate or carry a program for use by or in connection with an instruction execution system, apparatus, or device. A computer usable medium may include a propagated data signal in which the computer usable program code is embodied, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any suitable medium, including but not limited to the Internet, wire, fiber optic cable, RF, etc.

[0247] Computer program code for performing the operations of the present disclosure may be written in an object-oriented programming language such as Java, Smalltalk, C++, or others. However, computer program code for performing the operations of the present disclosure may also be written in conventional procedural programming languages, such as the "C" programming language or similar programming languages. The program code may run entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through a local area network / wide area network / Internet (e.g., network 14).

[0248] The present disclosure is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to the disclosed embodiments. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general purpose computer / special purpose computer / other programmable data processing apparatus, such that the instructions executed by the processor of the computer or other programmable data processing apparatus are means for implementing the function / act specified in one or more blocks of the flowchart illustrations and / or block diagrams.

[0249] These computer program instructions, which may instruct a computer or other programmable data processing apparatus to function in a particular manner, may also be stored in a computer readable memory, such that the instructions stored in the computer readable memory result in a product including instruction means for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0250] The computer program instructions may also be loaded into a computer or other programmable data processing device, such that the instructions, which are executed on a computer or other programmable device, result in steps for implementing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams, and a series of operational steps may be performed on the computer or other programmable device to produce a computer-implemented process.

[0251] The flowcharts and block diagrams in the figures may illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or code portion that includes one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, in practice, two consecutive blocks may be executed substantially simultaneously, or the blocks may sometimes be executed in the reverse order, depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart diagrams, and combinations of blocks in the block diagrams and / or flowchart diagrams, may be implemented by a dedicated hardware-based system that performs a specific function or function, or a combination of dedicated hardware and computer instructions.

[0252] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the disclosure. As used herein, the singular forms "a", "an" and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the words "comprises" and / or "comprising", when used herein, specify the presence of stated features, integers, steps, operations, elements, and / or components, but do not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0253] The equivalents of the corresponding structures, materials, acts, and all means or step-plus-function elements in the following claims are intended to include structures, materials, or acts for performing that function in combination with other claimed elements as specifically claimed. The description of the present disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the disclosure in the form disclosed. Many modifications and variations that do not depart from the scope and spirit of the disclosure will be apparent to those skilled in the art. The embodiments have been chosen and described in order to most clearly explain the principles and practical applications of the disclosure and to enable others skilled in the art to understand the disclosure of various embodiments with various modifications suitable for the particular use contemplated.

[0254] Several implementations have been described. Having thus described the disclosure of the present application in detail, it will be apparent from reference to the embodiments that modifications and variations are possible without departing from the scope of the disclosure as defined in the appended claims. [Explanation of symbols]

[0255] 10,10s,10c1,10c2,10c3,10c4 Encoding / Decoding Process 12 Computing Devices 14 Network 16 Storage Devices 18 Secondary Network 20,22,24,26 Storage Devices 28,30,32 Laptop Computers 34 Personal Computers 36,38,40,42 Users 44 Link Line 44,46 Wireless communication channels 48 Cellular Networks / Bridges 50 Radio Communication Channels 52 Wireless Access Point (WAP) 100 First Data File 102 Related Encoded Data Files 104 Mapping 106 Dictionary files 108 Modified Encoded Data File 110 results 112 File Segments 114 1st position 116 2nd position 118 Short-range wireless communication platform 120 Long-distance wireless communication platform 122 Directly Coupled Communication Platform 124 Satellite Communication Network 126 Cloud-based storage platform 128 Machine Learning Process 130 Electronic Health Record (EHR) Processes 132 Blockchain Process 134 Disaster Recovery Process< / ij> < / ij>

Claims

1. processing the unencoded data file to identify a plurality of file segments; mapping each of a plurality of file segments to a portion of a dictionary file to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, and generating an associated encoded data file based at least in part on the plurality of mappings; receiving a request to operate on the unencoded data file; processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; A computer-implemented method executed on a computing device, comprising:

2. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; performing a homomorphic encoding operation; performing a non-homomorphic encoding operation; The computer-implemented method of claim 1 , comprising one or more of:

3. said associated encoded data file being: associated compressed data files; associated encrypted data files; The computer-implemented method of claim 1 , comprising one or more of:

4. The computer-implemented method of claim 1 , wherein the dictionary file includes a plurality of discrete entries.

5. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 5. The computer-implemented method of claim 4, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing the requested operation on the unencoded data file.

6. The computer-implemented method of claim 1 , wherein the dictionary file includes a plurality of linked entries.

7. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 7. The computer-implemented method of claim 6, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing the requested operation on the unencoded data file.

8. The request operation is Calculation operations and Search operations and Additional actions and The splitting operation and A coupling operation; The connecting operation, 10. The computer-implemented method of claim 1, wherein the method further comprises:

9. 10. The computer-implemented method of claim 1, wherein the associated encoded data file is easier to process than the unencoded data file.

10. The computer-implemented method of claim 1 , wherein the associated encoded data file requires less computational overhead than the unencoded data file.

11. processing the unencoded data file to identify a plurality of file segments; mapping each of a plurality of file segments to a portion of a dictionary file to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, and generating an associated encoded data file based at least in part on the plurality of mappings; receiving a request to operate on the unencoded data file; processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; A computer program for causing a computer to perform operations including the above.

12. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; performing a homomorphic encoding operation; performing a non-homomorphic encoding operation; 12. The computer program of claim 11, comprising one or more of:

13. said associated encoded data file being: associated compressed data files; associated encrypted data files; 12. The computer program of claim 11, comprising one or more of:

14. The computer program of claim 11 , wherein the dictionary file includes a plurality of discrete entries.

15. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 15. The computer program product of claim 14, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file.

16. The computer program of claim 11 , wherein the dictionary file includes a plurality of linked entries.

17. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 17. The computer program product of claim 16, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file.

18. The request operation is Calculation operations and Search operations and Additional actions and The splitting operation and A coupling operation; The connecting operation, 12. The computer program of claim 11, wherein the computer program is for one or more of:

19. 12. The computer program of claim 11, wherein the associated encoded data file is easier to process than the unencoded data file.

20. 12. The computer program of claim 11, wherein the associated encoded data files require less computational overhead than the unencoded data files.

21. processing the unencoded data file to identify a plurality of file segments; mapping each of a plurality of file segments to a portion of a dictionary file to generate a plurality of mappings, each of the plurality of mappings including a start position and a length, and generating an associated encoded data file based at least in part on the plurality of mappings; receiving a request to operate on the unencoded data file; processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; A computing system including a processor and memory configured to perform operations including:

22. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; performing a homomorphic encoding operation; performing a non-homomorphic encoding operation; 22. The computing system of claim 21, comprising one or more of:

23. said associated encoded data file being: associated compressed data files; associated encrypted data files; 22. The computing system of claim 21, comprising one or more of:

24. 22. The computing system of claim 21, wherein the dictionary file includes a plurality of discrete entries.

25. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 25. The computing system of claim 24, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a request operation on the unencoded data file.

26. 22. The computing system of claim 21, wherein the dictionary file comprises a plurality of linked entries.

27. processing the associated encoded data file based at least in part on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a requested operation on the unencoded data file; 27. The computing system of claim 26, further comprising processing the associated encoded data file on a byte-by-byte basis based on the plurality of mappings and the dictionary file to generate a modified encoded data file representing a request operation on the unencoded data file.

28. The request operation is Calculation operations and Search operations and Additional actions and The splitting operation and A coupling operation; The connecting operation, 22. The computing system of claim 21, wherein the computing system is configured to:

29. 22. The computing system of claim 21, wherein the associated encoded data files are easier to process than the unencoded data files.

30. 22. The computing system of claim 21, wherein the associated encoded data files require less computational overhead than the unencoded data files.