Compression of the entropy table by interpolation coding
Cumulative interpolation encoding and decoding methods, particularly using ANS entropy coding, address inefficiencies in existing entropy coding by minimizing the size of compressed symbol occurrence tables, resulting in more efficient and memory-effective data compression.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NINTENDO CO LTD
- Filing Date
- 2025-12-09
- Publication Date
- 2026-06-05
AI Technical Summary
Existing entropy coding methods, such as Huffman and arithmetic coding, are inefficient in compressing symbol occurrence tables, leading to suboptimal compression sizes due to the need to transmit the symbol occurrence table alongside the encoded data, which increases the overall file size.
The use of cumulative interpolation encoding and decoding methods, specifically asymmetric number system (ANS) entropy coding, to compress and decode symbol occurrence tables by iteratively encoding symbols into a single large number, reducing the need to transmit the table separately and minimizing the overall compression size.
This approach achieves more efficient compression by reducing the size of the compressed file through faster and more memory-efficient decoding processes, allowing for lossless restoration of encoded data and enabling streaming applications with low latency.
Smart Images

Figure 2026092708000001_ABST
Abstract
Description
[Technical Field]
[0001] This technology relates to coding and decoding, and is a system for entropy coding and decoding. A program, apparatus, circuit, method, technique, and program used for entropy coding. Regarding the encoding and decoding of codebooks, parameters, and / or tables Furthermore, this technology performs entropy encoding on the compressed file, and the entropy This relates to encoding and decoding the symbol occurrence table used in P-coding. Furthermore, this technology is used for entropy-based file segmentation in such contexts. To relate to. [Background technology]
[0002] Videos, images, digital music, video games, and other content are available for streaming. Because it is compressed before it is processed, it is limited in bandwidth, such as that used by mobile phones and home Wi-Fi networks. Streaming is possible with sufficiently low latency using a bandwidth connection.
[0003] Generally, there are two types of compression: lossy compression and lossless compression. Lossy compression is a constant compression. The content size is reduced by removing the information. Typically, the removed information is Things that we can do without (for example, high-frequency ranges that only some people can hear, low resolution) (For example, fine details in photographs or images that are only visible in certain areas and whose finer points would otherwise be obscured.)
[0004] In lossless compression, all bit information in the original file or content remains after compression. When the file is unzipped, that information is restored. Lossless compression is by the computer It is useful when compressing executable files because some computer instructions are lost. This is because execution errors may occur if this is done (this is something like trying to follow the driving instructions deleted every three lines).
[0005] There is a form of lossless compression called "entropy coding". Entropy coding is an encoding method that involves assigning symbols to symbols such that the length of the code matches the probability of symbol occurrence. The most frequently occurring symbols are encoded with the shortest codes. Samuel F.B. Morse and his friend Alfred Vail used entropy coding when devising the "Morse code" in the 1840s. Morse and Vail counted the number of each character in a typesetting set for printing and estimated the character occurrence frequencies in newspapers (since they were trying to create a universal code that could be used for any message sent by telegraph, they were not examining the actual occurrence frequencies of symbols in a specific message). They found the following:
[0006] 12,000 E 2,500 F
[0007] 9,000 T 2,000 W, Y
[0008] 8,000 A, I, N, O, S 1,700 G, P
[0009] 6,400 H 1,600 B
[0010] 6,200 R 1,200 V
[0011] 4,400 D 800 K
[0012] 4,000 L 500 Q
[0013] 3,400 U 400 J, X
[0014] 3,000 C, M 200 Z
[0015] Since the letter "E" appears most frequently, Morse and Vail assigned a single " dot" (".") to it. This is the shortest code that a telegrapher can transmit. Similarly , Morse and Vail assigned the second shortest code (a single "dash", "-") to the second most frequently appearing letter, "T", etc. Morse and Vai l assigned long codes consisting of combinations of four dots and / or dashes to the letters "Q", "J", "X", "Z" because these letters appear least frequently. For each mess age, there was no need to send a "code book", and Morse signals were quickly standardized and became something that most telegraphers memorized.
[0016] Entropy coding is widely used today for all kinds of data compression, and among them, Huffman coding and arithmetic coding are the most popular. These often function by exploiting the redundancy in the output of quantizers. See Huffman, "A Method for the Construction of Minimum-Redundan cy Codes", Proceedings of the I.R.E. (September 195 2). Arithmetic coding encodes the entire message as a fraction q of arbitrary precision (0.0 ≤ q < 1.0), which is a number. This represents the current information as a range defined by two numbers . An asymmetric number system (ANS), a type of entropy coder in recent years, enables faster implementation because it operates directly on a single natural number representing the current information . en.wikipedia.org / wiki / Arithmetic_coding ;Duda et al., “The use of asymmetric numerical sy stems as an accurate replacement for Huf fman coding”, Picture Coding Symposium (20 15).
[0017] A simple way to compress a sequence of symbols (e.g., computer data file 10) One example is a two-part code based on an ANS-type entropy encoder, as shown in Figure 1. This involves using [a specific method]. In this case, first, each [unit] in the column to be compressed (i.e., "message") Table F (reference number 16, two-part code "codebook") contains the number of occurrences of Nbor. Construct a table F. Figure 1 shows this table F as a histogram. The probability of each symbol appearing is... Table F, which can estimate the rate, is a symbol sequence (illustrated) by the ANS encoder. In this example, each of the following (which is first compressed using LZ4 lossless compression to reduce redundancy) It is used to iteratively encode symbols into a single large number (encoded data). Oh, in this example, table F16 shows the output of each symbol in the actual message being encoded. To provide the most accurate estimate of the current count, it is "customized" to specific columns that are compressed. Therefore, in an exemplary embodiment, each unique sequence to be encoded corresponds to its own It has a symbol occurrence table F.
[0018] Throughout the symbol sequence coding process in which Table F encodes a specific symbol sequence If it remains the same, the name "static coding" is applied (in contrast to this, "adaptive coding" In "encoding," the table may change with each iteration of encoding. The static ANS decoder encodes Table F16 (codebook) is needed to perform the reverse of the process, therefore The table is provided to the decoder along with the encoded data 14 in the compressed column. . Compressed column = Encoded data + Symbol occurrence table F
[0019] Since the symbol occurrence table F is also sent to the decoder, the effective compression size of the above compressed column is reduced. It becomes part of it. Therefore, in order to reduce the overall compression size of the compressed column, Table F It is desirable to compress it efficiently. [Overview of the Initiative]
[0020] In one embodiment, the decoding method includes at least one processor and / or processing circuit The decoding method is performed using a symbol occurrence table to determine the entropy code The process involves receiving a sequence of symbols that have been coded, and an integer that encodes the table of symbol occurrences. Receiving a value f, and using the received integer value f, including the following (i) and (ii) Hmm, decoding the table of symbol occurrences, (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry + f mod (the last index entry) The entry of the first index (+1) is calculated, and each of the decoded ranges Decode the entry of the intermediate index, f div (the entry of the last index mentioned above) Calculate the entry of the first index mentioned above (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the occurrence table. Applying the decoded symbol occurrence table, the received encoded symbol This may include entropy decoding of the Boll series.
[0021] To clarify, the "symbol appearance table" that appears first above is as follows: In the embodiment described in detail below, table F refers to the cumulative table C, and the other part refers to the cumulative table C. No. Specifically, the "cumulative interpolation encoding / decoding" in the embodiment is as described in (ii) above. As shown, it includes conversions between Table F and Table C (therefore, the term <<cumulative>> is used). (Leaves are included). Therefore, in the embodiment, at the end of (i), table C is decoded. And at the end of (ii), table F is decoded. Therefore, (i) Table F is decoded by +(ii). In other words, it is as follows:
[0022] <<Cumulative interpolation decoding>> decodes table F using the following procedure.
[0023] i) Decode table C using interpolation decoding.
[0024] ii) Calculate Table F from Table C.
[0025] In one embodiment, the decoding involves receiving a second integer value m and the symbol The value zero is used as the lower limit of the cumulative table of occurrences, and the received second integer value m is used in the This may further include using it as the upper limit of the cumulative table for the appearance of Nbor.
[0026] In one embodiment, the decoding involves receiving a second integer value m and the symbol Insert a zero value as the first entry in the cumulative table of occurrences, and the received Insert the integer value m of 2 as the last entry in the cumulative table of symbol occurrences. It may also include ,
[0027] In one embodiment, the received second integer value m is the encoded symbol sequence This can also be obtained from the header metadata.
[0028] In one embodiment, the tree of the divided decoding range is traversed, and each of the nodes in the tree By performing division in front of each of the child nodes of the do, each of the cumulative table This may further include decrypting the entries. Each entry in the cumulative table is the previous The tree of the divided decryption range is traversed sequentially in depth-first order, and division is performed at each node of the tree. It may be decrypted by doing so.
[0029] In one embodiment, the received integer value f may be represented as a bignum. .
[0030] In one embodiment, renormalization is performed to enable faster and more memory-efficient decoding. It may also include the process of transformation.
[0031] In one embodiment, the encoded symbol sequence is a sequence of LZ4 blocks A collection of different components including tokens, literal length, literals, offsets, and match length. It may include combinations.
[0032] In one embodiment, when using the received integer value f, integer arithmetic, shifting, logical operations are performed. Even if you restore the table entries for the symbol occurrences using only calculation, load, and store, good.
[0033] In one embodiment, the entropy decoding is performed using an asymmetric coding system (ANS) entropy Decryption is also acceptable.
[0034] In one embodiment, the sequential division and calculation are repeated for each of the decoding ranges. This may further include performing the action in a recursive manner.
[0035] In one embodiment, binary segmentation based on entropy is performed on the symbol sequence. Each segment of the encoded symbol sequence obtained by performing a split is independently The further includes decoding and reconstructing the symbol sequence based on the segment header. But that's fine.
[0036] In one embodiment, the received entropy-encoded symbol sequence is decoded. This allows the losslessly restored instructions to be executed by at least one processor. It may also include the following.
[0037] In one embodiment, the received entropy-encoded symbol sequence is decoded. By doing so, the graphic data is restored losslessly, at least partially based on this. , at least a portion of the interactive graphic display, at least one graphic This may further include generating the product using a processing device.
[0038] In one embodiment, the decoder comprises at least one processor and / or processing circuit The system includes, and the at least one processor and / or processing circuit, a table of symbol occurrences. Accessing an integer value f encoded by and using the integer value f, the following (i) and ( ii) Decoding the symbol occurrence table, including (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry + f mod (the last index entry) The entry of the first index (+1) is calculated, and each of the decoded ranges Decode the entry of the intermediate index, f div (the entry of the last index mentioned above) Calculate the entry of the first index mentioned above (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the occurrence table. Performs an action that includes this.
[0039] In such embodiments, the following configurations may also be adopted.
[0040] The above operation applies the calculated symbol occurrence table to the encoded symbol Entropy decoding of the sequence, and / or the entropy-decoded symbol Performing at least a portion of the sequence, and / or the entropy-decoded symbol sequence and This further includes streaming at least a portion of the information and / or derived therefrom. That's fine.
[0041] The above operation involves receiving a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the received second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0042] The above operation involves receiving a second integer value m and the last of the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the received second integer value m is the same as the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0043] The operation described above involves taking the received second integer value m and placing it in the header of the encoded symbol sequence. This may also include information derived from metadata.
[0044] The above operation traverses the tree of the divided decoding range and the child nodes of each node in the tree By performing division at each node beforehand, the entries in the cumulative table are decrypted. To convert, and / or to traverse the tree of the divided decoding range in depth first order, By performing division at each node of the tree, the entries in the cumulative table can be decrypted. It may also include the following.
[0045] The received integer value f may be represented as a bignum.
[0046] The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0047] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0048] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entries for the aforementioned symbol occurrences may be restored.
[0049] In the above application, asymmetric number system (ANS) entropy decoding was applied to receive the above The encoded symbol sequence may be decoded.
[0050] The operation repeats the sequential division and calculation for each of the decoding ranges. To perform a recursive operation, and / or an entropy-based binary segmentation of the symbol sequence Each segment of the encoded symbol sequence obtained by performing a segment decomposition is independent decrypt and reconstruct the symbol sequence based on the segment header, and / Alternatively, by decoding the received entropy-encoded symbol sequence, lossless Executing instructions restored by S, and / or the received entropy-encoded By decoding the sequence of symbols, the graphic data is restored losslessly. Based at least partially, at least a portion of the interactive graphic display, This may further include generating the image using at least one graphics processing unit.
[0051] One embodiment of a system for generating animated graphics is a system for the appearance of symbols. At least one data block representing a sequence of symbols entropy-encoded using a bull A record that stores at least one integer value f, which encodes the table of symbol occurrences. Using the memory means and the integer value f, the symbol occurrences include (i) and (ii) below. A means of decrypting the table, (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By splitting, each entry in the cumulative table of symbol occurrences is decoded, and each of the reconstructions Regarding the symbolization range, from the decoded entries in the cumulative table of symbol occurrences, the first The index entry of + f mod (the last index entry - the first The index entry + 1) is calculated, and the intermediate index of the decoding range Decrypt the entry and f div (the entry of the last index - the first Calculate the entry of the index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the occurrence table. Applying the decoded symbol occurrence table, the at least one data block When the encoded symbol sequence represented by the 'c' is entropy-decoded, the e At least a portion of the tropy-decoded symbol sequence is graphic and / or graphics Represents the animation behavior, and the entropy-decoded symbol sequence contains at least It may also include means for generating animated graphics based on partials.
[0052] In such embodiments, the following configurations may also be adopted.
[0053] The system further provides a means for receiving a second integer value m, In (i) above, the value zero is used as the lower limit of the cumulative table of symbol occurrences, The second integer value m received is used as the upper limit of the cumulative table of symbol occurrences. That's fine.
[0054] The system further provides a means for receiving a second integer value m, In (i) above, zero is the first entry in the cumulative table of symbol occurrences. The second integer value m received is inserted, and the last occurrence of the symbol in the cumulative table is... It may be inserted as a root.
[0055] The second integer value m is obtained from the header metadata of the encoded symbol sequence. That's fine.
[0056] In (i) above, the tree of the divided decoding range is traversed, and each node of the tree By performing division at each node before the child node, each entry in the cumulative table is The decryption of the bird may be performed.
[0057] In (i) above, the divided decoding range tree is traversed sequentially in depth-first order, By performing division at each node of the tree, each entry in the cumulative table is decoded. It's okay if it breaks.
[0058] The aforementioned integer value f may be represented as a bignum.
[0059] Further means of renormalization are provided to enable faster and more memory-efficient decoding. You may do so.
[0060] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0061] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entries for the aforementioned symbol occurrences may be restored.
[0062] The entropy decoding may be an asymmetric number system (ANS) entropy decoding. stomach.
[0063] In (i) above, the sequential division and calculation are repeated for each of the decoding ranges. This may be done either or recursively. and / or based on entropy for the symbol sequence Each of the encoded symbol sequences obtained by performing binary segment division The components are decoded independently, and the symbol sequence is reconstructed based on the segment header. The means of further providing the received entropy-encoded sing It also includes a means to execute instructions that have been lostlessly restored by decoding the bol sequence. This is also good. And / or in a cloud environment, the entropy-encoded symbol sequence It would be good to have additional means to decrypt at least partially.
[0064] The entropy-encoded symbol sequence is decoded to restore it losslessly. Interactive graphics based at least partially on the provided graphic data. The system further comprises at least one graphics processing means for generating at least a portion of the display. You can.
[0065] Based at least partially on the entropy-decoded symbol sequence, the animation It would also be good to have an emulator for generating the image graphics.
[0066] An example of an encoding method performed using at least one processor and / or processing circuit. A typical embodiment uses the occurrence of symbols in a sequence of symbols that are entropy coded. To generate a symbol appearance table, and to use the symbol appearance table to generate the symbol Entropy coding of the Boll sequence and using the integer value f, the following (i) and (ii) This includes encoding the table of symbol occurrences, (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index By splitting, each entry in the cumulative table of symbol occurrences is encoded, and each Regarding the encoding range, f × (entry of the last index - entry of the first index) (Tri + 1) + (Entries of each intermediate index - Entries of the first index) By calculating the above, the entries of each intermediate index in the encoding range are encoded. Then, update f. The entropy-encoded symbol sequence and the symbol occurrence table are encoded. To form at least one data block representing the obtained integer value f, It may be included.
[0067] The above corresponds to exemplary embodiments, which are described in detail below.
[0068] <<Cumulative interpolation coding>> encodes table F in the following way:
[0069] Calculate Table C from Table F
[0070] Encode table C using interpolation coding.
[0071] In such embodiments, the following configurations may also be adopted.
[0072] The encoding involves generating a second integer value m and the cumulative table of the symbol occurrences. Using zero as the lower limit, the generated second integer value m is used as the cumulative tape of the symbol occurrences. It may also include using it as an upper limit for the bull.
[0073] The encoding involves generating a second integer value m and the cumulative table of the symbol occurrences. Inserting a zero value as the first entry, and the generated second integer value m is used It may also include inserting it as the last entry in the cumulative table of Nbol appearances. stomach.
[0074] The encoding is performed in the header associated with the encoded symbol sequence. The second integer value m may be included as 'ta'.
[0075] The encoding traverses the tree of the divided encoding range, and after each node's child node... By performing multiplication at each node, each entry in the cumulative table is encoded. It may also include the following.
[0076] The encoding is performed by traversing the tree of the divided encoding range in reverse order using depth-first method, and each no The process further includes encoding each entry in the cumulative table by multiplying by D. That's fine.
[0077] The encoding further includes representing the generated integer value f as a bignum. That's good too.
[0078] The aforementioned encoding is renormalized to enable faster and more memory-efficient decoding. It may also include the following.
[0079] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0080] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0081] The aforementioned entropy coding may be asymmetric number-body (ANS) entropy coding. stomach.
[0082] The encoding is performed by repeating the sequential division and calculation for each of the encoding ranges or Recursively, and / or entropy-based binary selection of the symbol sequence. Each segment of the encoded symbol sequence obtained by segment partitioning is independently The sequence is encoded and the order of each segment in the symbol sequence within the segment header is specified. It may also include the act of doing so.
[0083] The symbol sequence is a lossless encoded executable instruction and / or interact Control the graphics processing unit to generate at least a portion of the vivid graphic display. It may include a bit sequence configured to do so.
[0084] The above encoding uses entropy-based binary segment partitioning before encoding, The process further includes segmenting the symbol sequence, and the binary based on the entropy. Segmentation involves the symbol output of all segments that result in each segmentation step. This may involve reducing or minimizing the sum of the entropy and size of the current table.
[0085] One embodiment of a system for generating animated graphics is a system that generates at least one A means of generating animated graphics and a sequence of symbols that contributes, at least partially, to the creation of animated graphics. And, based on the appearance of symbols in the entropy-encoded symbol sequence, Means for generating an occurrence table, and using the symbol occurrence table to generate the symbol sequence A means for entropy coding and an integer value f, including the following (i) and (ii): Means for encoding the table of symbol occurrences, (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index By splitting, each entry in the cumulative table of symbol occurrences is encoded, and each Regarding the encoding range, f × (entry of the last index - entry of the first index) (Tri + 1) + (Entries of each intermediate index - Entries of the first index) By calculating the above, the entries of each intermediate index in the encoding range are encoded. Then, update f. The entropy-encoded symbol sequence and the table of the encoded symbol occurrences Means for forming at least one data block representing an integer value f representing a , The system may also include means for storing the at least one data block in the storage device.
[0086] In such embodiments, the following configurations may also be adopted.
[0087] The means for generating the second integer value m is further provided, and in (ii) above, the symbol The value zero is used as the lower limit of the cumulative table of occurrences of the character, and the generated second integer value m is used as the lower limit of the cumulative table of occurrences of the character. It may also be used as an upper limit for the cumulative table of symbol occurrences.
[0088] The means for generating the second integer value m is further provided, and in (ii) above, the symbol A zero value is inserted as the first entry in the cumulative table of occurrences, and the generated second An integer value m may be inserted as the last entry in the cumulative table of symbol occurrences.
[0089] In the header associated with the encoded symbol sequence, the metadata is as A second integer value m may be included.
[0090] In (ii) above, the tree of the divided coding range is traversed, and the child nodes of each node Later, by performing multiplication at each node, each entry in the cumulative table is signed. It's okay to change it.
[0091] In (ii) above, the tree of the divided coding range is traversed in reverse order using depth-first method. By performing multiplication at each node, each entry in the cumulative table is encoded. and / or represent the received integer value f as a bignum, and / or faster This may further include renormalizing the data to enable more memory-efficient encoding. stomach.
[0092] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0093] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0094] The aforementioned entropy coding may be asymmetric number-body (ANS) entropy coding. stomach.
[0095] In (ii) above, the sequential division and calculation are repeated for each of the encoding ranges. may be done and / or recursively. and / or entropy for the symbol sequence The encoded symbol sequence obtained by performing binary segmentation based on the above Each segment is encoded independently, and each segment of the symbol sequence in the segment header The system may also include a means for specifying the order of the elements.
[0096] The symbol sequence may include lossless encoded executable instructions.
[0097] The aforementioned sequence of symbols generates at least a portion of an interactive graphic display. It includes a bit string configured to control at least one graphics processing unit. But that's fine.
[0098] Before the encoding, the symbol sequence is generated using entropy-based binary segment partitioning. This further includes segmenting the entropy-based binary segments. The division is performed by taking a table of symbol occurrences for all segments that occur at each segment division step. The sum of the entropy and size of the element may be reduced or minimized.
[0099] One embodiment of the program is to encode an integer representing a table of symbol occurrences in a computer. A means to access the value f, and using the integer value f, the following (i) and (ii) are included in the preceding A means for decoding the table of occurrences of the marked symbols, (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By splitting, each entry in the cumulative table of symbol occurrences is decoded, and each of the reconstructions Regarding the symbolization range, from the decoded entries in the cumulative table of symbol occurrences, the first The index entry of + f mod (the last index entry - the first The index entry + 1) is calculated, and the intermediate index of the decoding range Decrypt the entry and f div (the entry of the last index - the first Calculate the entry of the index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the occurrence table. It may be provided.
[0100] In such embodiments, the following configurations may also be adopted.
[0101] A means of receiving an entropy-encoded symbol sequence using a symbol occurrence table. Then, by applying the above-calculated symbol occurrence table, the received encoded symbol The computer is further made to function as a means of entropy decoding the numbol sequence, and / or using at least a portion of the entropy-decoded symbol sequence, Graphica Streaming data representing at least a portion of the user interaction, and and / or perform on at least a portion of the entropy-decoded symbol sequence, and / or information based on at least a portion of the entropy-decoded symbol sequence It may also include the act of mingling.
[0102] The computer is further made to function as a means for receiving a second integer value m, and the ( i) Using zero as the lower limit of the cumulative table of symbol occurrences, the received The second integer value m may be used as the upper limit of the cumulative table of symbol occurrences.
[0103] The computer is further made to function as a means for receiving a second integer value m, and the ( i) Insert a zero value as the first entry in the cumulative table of symbol occurrences. The second integer value m received is used as the last occurrence in the cumulative table of symbol occurrences. It can be inserted as an insert.
[0104] Even if the second integer value m is obtained from the header metadata of the encoded symbol sequence, good.
[0105] In (i) above, the tree of the divided decoding range is traversed, and each of the no By performing division in front of each of the child nodes of the do, each of the cumulative table The entries may be decrypted and / or the tree of the divided decrypted ranges may be depth-first. By traversing sequentially and performing division at each node of the tree, the entry of the cumulative table is obtained. You may decrypt "ri".
[0106] In such embodiments, the following configurations may also be adopted.
[0107] The received integer value f may be represented as a bignum.
[0108] This further includes renormalization to enable faster and more memory-efficient decoding. That's fine.
[0109] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0110] When using f, only integer operations, shifts, logical operations, loads, and stores are used. The entry in the symbol occurrence table may be restored from the numerical value f.
[0111] The entropy decoding may be an asymmetric number system (ANS) entropy decoding. stomach.
[0112] In (i) above, the sequential division and calculation are repeated for each of the decoding ranges. to perform, and / or to recursively perform the sequential division and calculation for each of the decoding ranges. That's fine.
[0113] The computer further uses an entropy-based binary for the symbol sequence. Each segment of the encoded symbol sequence obtained by segment division is A means for independently decoding and reconstructing the symbol sequence based on the segment header. It's okay to let it function that way.
[0114] One embodiment of a method for operating a cloud-based device is at least one network and / or via a communication link, a remotely located decoder processor and / or decoder This includes sending commands and / or control signals to a processing circuit, and the commands and / or control signals The remotely located decoder processor and / or decoder processing circuit are then used to output symbols. Access the integer value f that encodes the current table, and using the integer value f, the following: Decoding the symbol occurrence table, including (i) and (ii), (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By splitting, each entry in the cumulative table of symbol occurrences is decoded, and each of the reconstructions Regarding the symbolization range, from the decoded entries in the cumulative table of symbol occurrences, the first The index entry of + f mod (the last index entry - the first The index entry + 1) is calculated, and the intermediate index of the decoding range Decrypt the entry and f div (the entry of the last index - the first Calculate the entry of the index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the occurrence table. Applying the calculated symbol occurrence table, the encoded symbol sequence is entropized. To decode the signal and to transmit it via the at least one network and / or communication link. and generate or provide using the entropy-decoded symbol sequence, at least partially. The system may be made to perform actions that include receiving the provided visual and / or auditory information.
[0115] In such embodiments, the following configurations may also be adopted.
[0116] The aforementioned reception is at least partially based on the entropy-decoded symbol sequence. The data represents at least a portion of at least one graphical presentation. This may include receiving.
[0117] The method described above involves receiving a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the received second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0118] The method described above involves receiving a second integer value m and the last of the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the received second integer value m is the same as the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0119] The second integer value m is obtained from the header metadata of the encoded symbol sequence. That's fine.
[0120] The method described above traverses the tree of the divided decoding range, and the child nodes of each node in the tree By performing division at each node before the above, each entry in the cumulative table is restored. This may further include numbering. Each entry in the cumulative table is the partitioned By traversing the tree of the decryption range in a depth-first order and performing division at each node of the tree, It may be decrypted.
[0121] The received integer value f may be represented as a bignum.
[0122] The above method renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0123] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0124] When using the received integer f, integer operations, shifts, logical operations, loads, and stores are performed. The table entries for the symbol occurrences may be restored using the aforementioned method.
[0125] The entropy decoding may be an asymmetric number system (ANS) entropy decoding. stomach.
[0126] The method repeats the sequential division and calculation for each of the decoding ranges. To perform a recursive operation, and / or an entropy-based binary segmentation of the symbol sequence Each segment of the encoded symbol sequence obtained by performing a segment decomposition is independent decrypt and reconstruct the symbol sequence based on the segment header, and / Alternatively, by decoding the received entropy-encoded symbol sequence, lossless The instructions restored by the system are to be executed by at least one processor, and / or the system Lossless restoration by decoding the extracted entropy-encoded symbol sequence. Interactive graphics based at least partially on the generated graphic data At least a portion of the display is generated using at least one graphics processing unit. It may also include the act of doing so.
[0127] All of the features described above can be used in combination with other features, or combinations of other features. It is possible to be there. [Brief explanation of the drawing]
[0128] [Figure 1] A diagram illustrating the conventional LZ4 / ANS encoding process. [Figure 2A] A diagram illustrating an example of an encoding and decoding system. [Figure 2B] A diagram illustrating an example of an encoding and decoding system. [Figure 3] A diagram illustrating an example of a new LZ4 compression / ANS entropy coding process. [Figure 4] A schematic diagram illustrating an example of encoding and decoding a table of symbol occurrences of size 4. The encoding of the entire table is f=147. [Figure 5A] A diagram illustrating an example of a series of encoding steps. [Figure 5B] A diagram illustrating an example of a series of decoding steps. [Figure 5C] A diagram illustrating an example of the encoding and decoding steps. [Figure 6] This figure shows an example of a forward path for estimating the compression size of the left-hand child segment. [Figure 7] This figure shows an example of a reverse path for estimating the compression size of the right-hand child segment. [Figure 8] A diagram showing an example of the sum of the estimated compression sizes of two child segments. The index of the smallest point in this sum represents the optimal cut point. [Figure 9] A schematic diagram illustrating an example of segmentation. Each square represents a segment in a column. S(n) is the estimated compressed size of the segment at index n, calculated as the sum of its zeroth-order entropy and the size of the compressed byte occurrence table. [Figure 10] A diagram showing an example of the conventional LZ4 block sequence format. [Figure 10A] A diagram showing an example of the conventional LZ4 block sequence format. [Figure 11] A schematic diagram illustrating an example of the new encoding of LZ4 blocks. [Figure 12A] A schematic diagram of an example compressed file format. [Figure 12B] A schematic diagram of an example compressed file format. [Figure 12C] A diagram showing an example of a file header format. [Figure 12D] A diagram showing an example of a block header format. [Figure 12E] A diagram showing an example of a stream header format. [Figure 12F] A diagram showing an example of a segment header format. [Figure 13A] A diagram showing an example of use. [Figure 13B] A diagram showing an example of use. [Figure 13C] A diagram showing an example of use. [Figure 13D] A diagram showing an example of use. [Figure 13E] A diagram showing an example of use. [Figure 13F] A diagram showing an example of use. [Figure 13G] A diagram showing an example of use. [Figure 13H] A diagram showing an example of use. [Figure 14A] A flowchart showing an example of the operation performed by the application server in Figure 13H. [Figure 14B] A flowchart illustrating an example of the operation performed by the presentation system in Figure 13H. [Modes for carrying out the invention]
[0129] Examples of encoding / decoding systems
[0130] Figures 2A and 2B show examples of encoding and decoding systems. These include one or multiple sequences of symbols. The numerical input file 50 (which may be stored on a storage medium) is encoded by the encoding device 56 The data is encoded and a compressed data stream or data file 54 is generated. The stream or data file 54 is sent from the encoding device 56 to one or more decoding devices 58. Communication is performed. The decoding device 58 may be located remotely from the encoding device 56, and the encoding device It may be placed together with the device. Compressed data stream from encoding device 56 to decoding device 58 The communication medium for communication is a memory storage device and / or a network and / or wireless network. Link and / or cable and / or signal path and / or one or more other components It may consist of any other configuration for the communication of digital data to its components.
[0131] Each decoding device 58 decodes the compressed data stream or data file 54. Restore input file 52. In an exemplary embodiment, since compression is lossless, The recovered input file is an exact match to the original input file. (Illustrated non-exclusive implementation) In this configuration, the decoding device 58 is used for real-time interactive video games and the like. Or one or more inputs for use in generating other graphic presentations. You may restore power file 52.
[0132] Figure 2B shows the encoding device 56 and the decoding device 58, each containing one or more central processing units. (CPU) and / or one or more graphics processing units (GPUs) and / or one or more It has a processing configuration consisting of processing circuits. In some use cases, the decoding device 58 is It includes one or more custom-designed hardware such as application-specific integrated circuits (ASICs). It is preferable that the encoding device 56 has one or more CPUs and / or GPUs, one of which One or more non- It is preferable to include a temporary memory device. However, the configuration is not limited to this. In some use cases, the encoding device 56 and the decoding device 58 are used to perform non-temporary me Mori may include software that runs on one or more processors and is stored within it. In other use cases, both the encoding device 56 and the decoding device 58 are connected to one or more ASICs. The hardware circuits provided by this (e.g., transistor-based logic gates, arithmetic circuits) It may consist of a configuration (such as a casing, registers, etc.) or other hardware configurations.
[0133] In some embodiments, the encoding device 56 and the decoding device 58 are configured to perform encoding and decoding. These are the same devices (or are located in such a common package) that can operate in a specific mode. A device capable of both encoding and decoding is generally called a "codec." In this embodiment, the encoding device 56 has a different structure from the decoding device 58, and the code The encoding device 56 performs only encoding and does not decode, while the decoding device 58 performs only decoding and codes No modifications will be made.
[0134] As shown in Figure 3, the encoding device 56 performs both LZ4 compression and ANS entropy coding. Using this method, the input file 10 is losslessly converted into a compressed entropy-encoded file 14. Encode. In other words, in an exemplary embodiment, the encoding device is already compressed in LZ4. You may receive an input file, or you may compress the file using LZ4 compression. The encoding device 56 performs entropy encoding on the compressed input file, which consists of a sequence of symbols. This is done and converted into the corresponding entropy code. Similarly, the decoding device 58 performs the entropy - Entropy-decode the encoded file 14 to restore the compressed input file. The recovered input file is then decompressed using LZ4 to return it to its original uncompressed input file. You may restore the code.
[0135] In one example embodiment, the encoding device 56 entropizes the compressed file The codebook or table used to symbolize and restore the entropy-coded file 16 is itself encoded / compressed using, for example, a cumulative interpolation coding technique based on "Binary Interpolation Coding" ("BIC"). Thus, the encoding device 56 encodes the codebook or table 16 losslessly and generates compact encoded data for communication to the decoding device 58. The decoding device 58 decodes the encoded data to restore the codebook or table F, and uses it to decode the entropy-coded file 14 to restore the original file 10.
[0136] Compression of the Entropy Table
[0137] Entropy coding may include creating a table F (also referred to as a "codebook") of symbol occurrences. To compress the symbol occurrence table F, the following method (Algorithm 1) may be used. · Calculate a table C (FIG. 3, reference numeral 18) of cumulative values of F. · Recursively encode the values of table C using a cumulative interpolation coding such as binary interpolation coding ("BIC") to generate encoded data, i.e., stored integer values f.
[0138] Further information on BIC is described, for example, in Moffat et al., "Binary Interp olative Coding for Effective Index Compr ession", Information Retrieval 3, 25 - 47 (2000). doi.or g / 10.1023 / A:1013002601898, link.springer. com / article / 10.1023 / A:1013002601898; Turpin et al., Housekeeping for prefix coding, IEEE Tr. responses on Communications 48(4):622-6 28, 48(4):622-628 (May 2000 DOI:10.1109 / 26.8 43129); Moffat et al., Large-Alphabet Semi-Static Entropy Coding Via Asymmetric Numeral S ystems, ACM Transactions on Information S ystems 38(4) May 2020 DOI:10.1145 / 3397175; Trotman, "Compressing Inverted Files", Information Search 6, 5-19 (2003).
[0139] In the configuration example shown in Figure 3, the encoding of table C (and therefore table F) is the integer f(20). It is represented by . Therefore, the integer value f is the encoded data of the symbol occurrence table F. This constructs an integer f that can be very large, and generally its size is determined in advance. We don't know the answer, and we don't know how much memory is needed to store it. This problem needs solving. Therefore, in one embodiment, a "bignum" structure that can represent an arbitrary-precision integer ( / / en.wikipedia.org / wiki / Arbitrary-precis ion_arithmetic) can be used (other alternative expressions in other embodiments) (This can also be used.) If you divide by bignum at each decoding step, in reality This means performing division multiple times. For example, if bignum is represented by n 32-bit values In this case, n division operations are required. To achieve faster and more memory-efficient decoding... To achieve this, a "renormalization" step can be added to each encoding and decoding step. This involves keeping the encoded value within a manageable small range throughout the entire encoding / decoding process. This avoids performing operations on very large integers. To store it, each time an integer value exceeds a threshold during encoding, its least significant bit is put into a buffer. One possibility is that it is written. In this case, at each decoding step, the bignum structure When using this method, instead of performing division by very large integers or multiple divisions by small integers, ratio Single division of relatively small integers (and reading bits from a buffer as needed) This only requires performing the following action. Releasing bits early in this way slightly reduces the compression ratio. It is possible, but generally negligible compared to speed and memory efficiency. This is often used to improve ANS coding (graphallthething s.com / posts / streaming-ans-explained / #:~: text=Streaming%20and%20normalization). This Using such renormalization makes the calculation more efficient in some embodiments, but in other embodiments In this embodiment, iterative division may be used instead at each step (for example, if speed is a concern). (For example, when this is not possible or when it is implemented using high-speed hardware.)
[0140] Furthermore, this non-limiting embodiment assumes the following: • The symbol sequence is encoded as an 8-bit symbol, so in table F(16) It contains 256 elements. In the proposed embodiment, 2^k (k>0) elements are used. to a table having (k is the symbol size (bits)), or in the case of a power of 2, return to any size table with minor modifications such as padding zero values at the beginning, easily generalizable. · The number of symbols m in the symbol sequence, that is, the total occurrences in table F(16) and the last value in table C(18) are known at decoding time and provided to the decoder so there is no need to encode. This is a reasonable assumption in most practical use cases where the data file or message to be encoded is pre - determined and not randomly generated in real - time during encoding. Especially for entropy encoders like ANS, which require the above values to start decoding, it is even more so. More precisely, since the number of symbols m is required to decompress the compressed file, it is stored in the compressed file Thus, both the ANS decoder and the interpolation decoder obtain this value when receiving the compressed file containing the above value. And this value can be used as the last value in table C by the interpolation decoder. In a non - limiting example, this value is stored in the header metadata preceding the encoded data f of the symbol occurrence table. For example, in FIGS. 12A - 12B, each "segment data" (616, 618) consists of the entropy - encoded data s of the symbol sequence and the interpolation - encoded data f of the corresponding symbol occurrence table used for entropy encoding, preceded by a segment header (608) containing the meta - data necessary for decoding the segment data. In this file format example the number of symbols m (used as the input integer value m for the interpolation decoder) is - It is stored in (608) as "[u8] Raw data size". Other implementations In the example, the number is sent along with the encoded data of the symbol occurrence table, or by some other means. It may be sent to an interpolation decoder by law.
[0141] The following explains the algorithm using Python-oriented pseudocode. In particular, the algo As shown in Rhythm 1 and Algorithm 2, when defining one function inside another function, The inner function can access the outer function's variables as if they were "global" variables. All calls to a recursive function are as if they were "shared" by each other, the same sign I want to update the serial number data. The implementation may differ depending on the programming language. Good. For example, in C or C++, you would have two independent functions and a table C and encoded data. The algorithm can be implemented using a pointer to f.
[0142] Algorithm 1: Cumulative Interpolation Coding (Recursive Embodiment) JPEG2026092708000002.jpg161170
[0143] Algorithm 2: Cumulative Interpolation Decoding (Recursive Embodiment) JPEG2026092708000003.jpg183170
[0144] Note
[0145] As can be seen from the above, in the embodiment, in each encoding step, the entries in the cumulative table or Update f (encode the intermediate entry). In this embodiment, generate the entry. There is no need to update the integer f. Therefore, the encoding process of the embodiment is to update each For each symbolization step, from the cumulative table of symbol occurrences, f × (the last index) (Entry - First index entry + 1) + (Intermediate index entry - First By calculating the index entries, the intermediate index entries are encoded. Then, update f.
[0146] In this embodiment, in each decoding step, an entry is generated and f is updated. Therefore, it differs from decoding which performs the following first and second operations: namely, (1) partially From the cumulative table of decoded symbol occurrences, the first index entry + fm Calculate od (last index entry - first index entry + 1) , decode the entry of the intermediate index of the decryption range, (2) f div (last i Calculate the index entry (index entry - first index entry + 1) and update f. .
[0147] Examples
[0148] Figure 4 shows the encoding and decoding of table C calculated from table F with m=10 and size 4. An example of decoding is shown. Since the value 10 is known during decoding, only the three values less than 10 are coded. It should be coded. In simple coding, The above three values are encoded in JPEG2026092708000004.jpg6170 (┌·┐ is the ceiling function, see en.wikipedia). (See org / wiki / Floor_and_ceiling_functions). This means that encoding table C requires a total of 3 × 4 = 12 bits. However, Furthermore, as shown in Figure 1, in the method of this embodiment, the above three values are changed stepwise and sequentially (for example In one example, the intermediate representation is encoded (iteratively) into a sequence, and as a result, the integer f=1 The result is 47, which means that Table C is This means it is encoded as JPEG2026092708000005.jpg5170.
[0149] More specifically, Figure 4 shows the encoding used to encode the input file table F. An example of the process is shown, where the representation 102 of the input file table F is Histology is a histology array of values F0, F1, F2, F3, each having an integer number of occurrences of 3, 1, 2, and 4. It is shown as a togram.
[0150] A C array 104 consisting of 257 zero values is defined as above (C1=F0, C i =C i- 1+F i-1 etc.), i min is defined as the first index of the range, i max teeth It is defined as the last index in the range.
[0151] Since the value 10 is known during decoding, only the three values less than 10 are encoded. 106 See reference. Interpolation coding techniques like BIC are used in three iterations as an operation on table C. Then, the three values are encoded as a single encoded integer 147.
[0152] 0x(6+1)+2=2 (Calculation step 110)
[0153] 2x(4+1)+3=13 (Calculation step 112)
[0154] 13 x (10 + 1) + 4 = 147 (Calculation step 114)
[0155] In the right-hand portion of Figure 4, the decoding process starts with the value 10 already known (array 11 See 6), it receives the value 147. Then, in the decryption process, these decryption Perform the steps to reconstruct each intermediate table C shown on the left.
[0156] 147mod(10+1)=4 (decoding step 116a) results in intermediate sequence 104. An array 118 is generated that matches the predefined part.
[0157] 147 ÷ (10 + 1) = 13 (Decoding step 118a)
[0158] The intermediate C sequence 106 is determined by 13mod(4+1)=3 (decoding step 118b). An array 120 matching the completed portion is obtained.
[0159] 13div(4+1)=2 (Decoding step 120a)
[0160] The definition of intermediate C sequence 108 is obtained by 2mod(6+1)=2 (decoding step 120b). An array 122 matching the completed portion is obtained.
[0161] 2div(6+1)=0 (decoding step 122a) results in a complete sequence with the original F sequence 102. A sequence 124 matching this is obtained (i.e., the original frequency sequence is restored without loss).
[0162] In the example above, the encoding is dynamic / adaptive, and the following operation of f (encoder) The case can change for each operation.
[0163] JPEG2026092708000006.jpg6170
[0164] For reference, in Figure 4, the change is "6" → "4" → "10" (the reverse occurs in the case of decoding). (in this order). This operation (in the decoder) dynamically changes the received integer value to a different value. The division is performed, and a series of remainder values are derived. These values depend on the maximum and minimum values of the range being operated on. It could also be said that things are changing.
[0165] Another aspect is that the algorithm described above is recursive and is executed iteratively. Therefore, such recursive program code is elegant (compact and efficient). However, instead of, for example, loops or recursion (i.e., functions that call themselves) Using inline code, each operation is described "sequentially," that is, It can also be performed by "(multiple) sequential operations". On the other hand, as a hardware configuration The data may be passed through the same circuit multiple times, or in a series of steps such as a pipeline. A continuous arithmetic circuit may be provided, or both may be used.
[0166] Example: Compression of symbol sequences
[0167] To compress a sequence of symbols (e.g., a file), use the above ANS encoding / decoding method. All that's needed is to integrate the argolisms.
[0168] Algorithm 3: Encoding of Symbol Sequences input: -S: A column of any size for symbols Calculate the symbol appearance table F (Figure 5A, Block 152). The ANS encoder is used to encode S from F to obtain the symbol sequence encoded data s (Figure) 5A, Block 154) Algorithm 1 is used to encode F and obtain table-encoded data f (Figure 5A, Block (156) Concatenating s and f yields the encoded segment S' (Figure 5A, Block 158). Output: S'
[0169] Algorithm 4: Decoding of Symbol Sequences input: -S': A sequence of arbitrary size encoded with Algorithm 5 S' is split to obtain symbol sequence encoded data s and table encoded data f (Figure 5B) (Block 162) Algorithm 2 decodes f to obtain the symbol occurrence table F (Figure 5B, block (Ku164) The ANS decoder decodes s from F to obtain the decoded segment S (Figure 5B, block (Ku 166) Output: S (Figure 5B, Block 168)
[0170] Figure 5C is an overview of an example of the overall encoding and decoding steps, performed by the same parties. The same component being manipulated, or the same component being manipulated by different parties Executable by component elements or by different components operated by different parties. In this example, the encoding step of table F and the decoding step of table F are: It is characterized as a "cumulative interpolation algorithm." A "cumulative interpolation algorithm" is a specific actual In its application, this method is sometimes referred to as "binary interpolation coding" (BIC) by those skilled in the art. ru.
[0171] An example of binary segmentation
[0172] If the symbol distribution changes significantly within a symbol sequence, the symbol sequence can be divided into multiple sequences with a uniform distribution. By dividing it into several segments and compressing these segments individually, a higher compression ratio can be achieved. This can sometimes be obtained. To do this, we cut the symbol sequence in which there is a significant change in the distribution. To extract. Such "points of change" in the probability distribution of a stochastic process (a sequence of random variables) Detecting change points is a well-known problem called change point detection. For example, en.wi See kipedia.org / wiki / Change_detection. We propose a custom greedy algorithm using top-down binary segmentation.
[0173] The segment partitioning algorithm of this application is such that the sum of the estimated compression sizes of the two segments is If the symbol sequence is smaller than the estimated compression size of the symbol sequence, the symbol sequence is split into two segments. Therefore, to do this, the symbol sequence is iterated through, and each added symbol is processed Then, the (0th order) entropy of the underlying segment is calculated. This allows each symbol Regarding the column, if it is decided to cut the column at that position, the two segments will The estimated compression size of the first segment (the leftmost child segment) is obtained. In reality, To reduce computation time, this evaluation is performed every N symbols.
[0174] To estimate the compression size of the second segment (the rightmost child segment), use symbols Perform the same operation while traversing the column in reverse order. The number of symbols in the symbol sequence calculated from the appearance of the symbols. The tropy is the same regardless of the direction of iteration. Next, the two estimates obtained for each symbol You can add up the values and select the cutting point that minimizes the sum.
[0175] Once the cutting point is determined, the pressure of the two resulting child segments is applied using the proposed compression method. Compare the total reduced size to the compressed size of the parent segment. To do this, segment There is no need to actually compress it. (0th order) entropy appears as a two-part code. Using an ANS encoder with a degree table, the column compression size can be estimated with near accuracy. Therefore, the storage size of the ANS table itself is not included. Thus, the entropy is calculated. The ANS table, which has already been calculated for the purpose of computation, is compressed using a cumulative interpolation algorithm, and its pressure You can obtain the compressed size of the segment by adding the segment's entropy to the compressed size. Next, if the sum of the compression sizes of the child segments is less than the compression size of the parent segments If segmentation is not necessary, perform the segmentation; otherwise, do not.
[0176] When segmentation is performed, the same algorithm can be recursively applied to the two child segments. It is used, and the segment tree is gradually constructed. For example, en.wikipedia.o See rg / wiki / Segment_tree. At the end of the algorithm, the segment tree You only need to obtain the leaf segments within the lee. Cut the node segments only if they are useful. To achieve this, leaf segments are part of an algorithm within a segment tree as shown in Figure 9. This represents the optimal segmentation provided by [the system / method].
[0177] Figures 6, 7, 8, and 9 show an example of finding a break point in a byte sequence. This sequence consists of two different... It is generated by randomly selecting bytes according to a Gaussian distribution and concatenating two resulting columns. The first column is 12,000 bytes, and the second column is 8,000 bytes. Therefore, The entire column has a size of 20,000 bytes, and the distribution changes around the 12,000th byte. As shown below, the algorithm clearly identifies the break point around the 12,000th byte. .
[0178] When segmenting a symbol sequence using this binary segmentation method, the symbol The algorithms for compressing and decompressing the columns are as follows:
[0179] Algorithm 5 Encoding of Symbol Sequences by Segment Division Input: - S: Sequence of symbols of any size Segment S using binary segment division to obtain segments (S i ) i=1· ··N to obtain. For each segment S i : Encode S using Algorithm 3 to obtain the encoded segment S i ' i . Concatenate the encoded segments (S i ') i=1···N to obtain the encoded sequence S'. Output: S'
[0180] Algorithm 6 Decoding of Sequences by Segment Division Input: - S': Sequence of any size encoded by Algorithm 5 Divide S' to obtain the encoded segments (S i ') (i=1···N) to obtain. For each encoded segment S i ': Decode S i ' using Algorithm 4 to obtain the decoded segment S i . Concatenate the decoded segments (S i ) i=1···N to obtain the decoded sequence S Output: S
[0181] In Algorithm 5, the concatenation of encoded segments includes incorporating one or more specific headers, which enables the encoded sequence to be divided into encoded segments during decoding. The above has described the configuration example in detail, but there are several methods for this .
[0182] As mentioned above, the majority of the segmentation work is performed on the encoder side. However The decoder concatenates the decoded segments in the appropriate order to form a continuous file. Alternatively, by grouping them into a stream, the system "recognizes" that it is operating on a segment.
[0183] LZ4 block compression
[0184] I propose applying the above compression method to LZ4 compression. github.com / lz4 The documentation for / lz4 / blob / dev / doc / lz4_Block_format.md As explained in LZ4 and schematically shown in Figures 10 and 10A. As described above, an LZ4 compressed block is composed of "sequences," and each sequence is as follows: It consists of five streams like these. • Token • Literal length • Literal • Offset, and Match length
[0185] These streams are the LZ4 document and blog post "Explanation of LZ4" (fastc ompression.blogspot.com / 2011 / 05 / lz4-expl This is explained in detail at ained.html. Because it is composed of sequences, there are five different streams for all block sequences. Group them into these groups. Next, for each group, concatenate its streams into one stream. The data is compressed using algorithm 5 described above. Depending on the file type, it may be possible to compress only some of them.
[0186] This method achieves a much better compression ratio than LZ4 alone (experiments show a 21.0% reduction). (An additional 2% ± 2.5% compression is possible), and faster decompression is also possible.
[0187] Figure 11 is an overview of an exemplary algorithm for encoding an LZ4 block. The encoding algorithms described above are also shown. In this example, file X502 is The conventional LZ4 encoder 504 is used to analyze the data, and multiple LZ4 encoders are analyzed by the processor. An LZ4 block 506 containing the kens is generated, and multiple files 508A, 508B, Files 508C, 508D, and 508E are generated. Each of these files 508 is Processed by Lugorism 5, each file is converted to segment file 512 as described above. Divide them into 508A, 508B, 508C, 508D, and 508E respectively. Multiple files 512(S1) to 512(Sn) are generated for this. Each of Il 512(S1) to 512(Sn) is obtained using ANS entropy coding. Processed by algorithm 3, entropy coded data (integer s i , 514) Algorithm 1 then performs the entropy coding of the segment file as described above. The numbor occurrence table F is processed using interpolation coding, and an integer f i It generates an algorithm. Rhythm 3 is an integer s i and integer f i Concatenate the files and save them as file S' i It generates a file. File S1', 516 (S'1) n Multiple files up to 516(S'n) The letters are concatenated to form file S'520, which has the format shown in Figures 12A-12B. This is how it works. Files A', 522A through E', 522E are files L S', corresponding to 520 (files A and 508A are processed by algorithm 5) In this case, file S', 520 is used as file A', 522A). Each of the files 522A to 522E is concatenated and stored in file X'524, as shown in Figure 1. The format will be as shown in 2A to 12B.
[0188] Figures 12A-12B show the file format of compressed file 610. Compression File 610 will have the following hierarchical structure: • Compressed file 610 has a file header 602 (see Figure 12C) that is a file header It is configured by being connected to 612. • File data 612 consists of a block header 604 (see Figure 12D) and a block It comprises one or more blocks, each linked to data 614. Each block data 614 consists of a stream header 606 (see Figure 12E) and a stream header. It comprises one or more streams 607, each linked to a stream data 609. Each stream data 609 consists of a segment header 608 (see Figure 12F) and a segment header. It comprises one or more segments, each linked to the performance data 618.
[0189] In the illustrated example, there are multiple blocks 614(0), ..., 614(z). Each block Block 614 contains multiple streams 607. For example, block 614(0) contains multiple streams 607. Block 614(z) includes streams 607(0) and 607(4), and stream 6 Includes 07(5), ..., 607(n). Each block 614 contains the same number of streams 6 It may contain 07 or a different number of streams.
[0190] In the illustrated example, each stream 607 contains a segment header 608 and segment data It contains multiple segments, each containing 618. For example, stream 609(0) contains Segment header 608(0)(0) and related segment data 618(0)(0) ...Segment header 608(0)(i) and associated segment data 618( It includes (0)(i). In addition, stream 609(1) has segment header 608(1 )(0) and related segment data 618(1)(0), ...Segment header It comprises 608(1)(j) and related segment data 618(1)(j). In the example, stream 609(n) contains segment header 608(n)(0) and associated Segment data 618(n)(0), ...Segment header 608(n)(t) and related segment data 618(n)(t). Integer values i, j, k, l, m n, p, q, r, s, and t can be the same or different values.
[0191] Each stream data from file data 612 in Figures 12A-12B is the same as the file in Figure 11. This corresponds to files A', 522A through E', 522E. The stream data within the segment is preceded by a segment header 608. It may include 616. Segment data 616a, 616b, 616c, 6 in Figure 12A 16d, 616j (compared to 618a, 618b, 618c, 618d, 618k in Figure 12B) The corresponding entries are S_1' and 516(S'1) in Figure 11, respectively. This is because, This is because all the initial segment data is present in those stream data. Files A' to E' actually correspond to each stream of data.
[0192] Examples of the meaning of the "u" values shown in the headers of 12C, 12D, 12E, and 12F are illustrative. The following are examples of embodiments.
[0193] u32: Unsigned integer holding 32 bits of data.
[0194] u8: Unsigned integer holding 8 bits of data
[0195] u6: Unsigned integer holding 6 bits of data
[0196] u4: Unsigned integer holding 4 bits of data
[0197] u2: An unsigned integer that holds 2 bits of data.
[0198] [u8]: Array of u8 values
[0199] The stream header 606 shown in Figure 12E contains "u2 Additional stream size by The fields are "Number of streams" and "[u8] Additional stream size b6...bN (arbitrary)". There is a field called "stream data". Here, the size (in bytes) of the "stream data" is 6 bytes. If it fits within (b0···b5), that is, if the maximum size is 63 bytes, then "[u8 ] Additional stream size b6···bN (optional) will be left empty, and "u2 additional stream The "number of bytes in the stream size" will be 0. If the "stream data" exceeds 63 bytes (non (Always highly likely) more than 6 bits are used to encode its size For example, if the size is 100KB, the size is encoded using 17 bits (l og2(100000) = 16.61), meaning 11 bits are added, resulting in 2 bytes. (u8) is added. In this case, "[u8] Additional stream size b6···bN" It contains 2 bytes (b6...b21, a table of two u8s) and "u2 additional story The number of bytes for the stream size is 2, and the decoder is set to "u6 Stream size b0...b5 After this, it tells them that these two bytes need to be read in addition to the complete stream. The size is obtained. Therefore, the decoder puts the following into the first 6 bits (b0...b5) Concatenate 2 bytes (b6...b21) to get the stream size (b0... in binary representation). · Obtain b21 (representing the integer 100000).
[0200] The data format is not limited to the data format shown in Figures 12A / 12B, but may include part or all of the illustrated header. It is possible to easily "embed" a compressed file into another file without storing the parts separately. For example If you embed an encoded file into a game compression file, file header 60 2. Block header 604, stream header 606, or segment header 60 You can store only the stream and not store the value 8.
[0201] In one embodiment, the data in the illustrated format is stored in a non-temporary storage device. The signal may be sent from the encoder to the decoder. For example, Figure 13A shows any type of connection. This shows an example of sending encoded data from an encoding device to a decoding device via a network. Also, Figure 13B shows a network This example shows how encoded data is sent from an encoding device to a decoding device via a network connection. Decryption by the decoder is performed in the reverse order, and the decoder processes the decrypted data at least Instructions executed by at least one processor to a single non-temporary memory device Alternatively, it can be used by storing it as computer code. Also, Figure 13C shows Receive the encoded compressed data file from the encoding device and send it over the network to one or more An intermediate that provides encoded compressed data files to the application execution system above. This indicates the application server. Each application execution system uses encoded compressed data. Decrypt the data file and use the decrypted data to produce output (for example, by running an application). Includes a decoder. In Figure 13C, the intermediate application server encodes the compressed There is no need to decrypt the data files; instead, they are provided to the application execution server. To do this, the above encoded compressed data file is kept in its "as received state". It may remain. Also, Figure 13D shows another embodiment, and the application server is Decode the encoded compressed data file, then encode the data again, and encode The compressed data file may be provided to the application execution system.
[0202] Figure 13E shows yet another embodiment, in which the application development system is The data file is provided to the application server via the network, and the application... The server encodes the data files and then sends the encoded, compressed data files to the network. It is provided to the application execution system via a workpiece or the like. Figure 13F shows further other The embodiment shows that the application development system is accessed via a route other than the network. The data file is then provided to the application server, and the application server then... Encode the data file, and the encoded compressed data file is transmitted over a network, etc. It is then provided to the application execution system.
[0203] Example I: Decryption Method
[0204] In one embodiment, the decoding method includes at least one processor and / or processing circuit The decoding method is performed using a symbol occurrence table to determine the entropy code The process involves receiving a sequence of symbols that have been coded, and an integer that encodes the table of symbol occurrences. Receiving a value f, and using the received integer value f, including the following (i) and (ii) The process involves decoding the symbol occurrence table and the decoded symbol occurrences. Apply the table to entropy decode the received encoded symbol sequence. It may also include the word "and". (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry + f mod (the last index entry) Calculate the entry of the first index (+1) and each of the intermediates of the decoding range Decrypt the index entry and f div (the last index entry mentioned above) - Calculate the entry of the first index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the appearance table.
[0205] To clarify, the "symbol appearance table" that appears first above is as follows: In the embodiment described in detail below, table F refers to the cumulative table C, and the other part refers to the cumulative table C. No. Specifically, the <<cumulative interpolation coding / decoding>> in the embodiment is as described in (ii) above. As described above, this includes the conversion between Table F and Table C (therefore, <<cumulative>> (The word is inserted). Therefore, in the embodiment, at the end of (i), table C is decoded (ii) Finally, table F is decoded. Therefore, (i Table F is decoded by ) + (ii). In other words, it is as follows:
[0206] <<Cumulative interpolation decoding>> decodes table F using the following procedure.
[0207] i) Decode table C using interpolation decoding.
[0208] ii) Calculate Table F from Table C.
[0209] In one embodiment, the decoding involves receiving a second integer value m and the symbol The value zero is used as the lower limit of the cumulative table of occurrences, and the received second integer value m is used in the This may further include using it as the upper limit of the cumulative table for the appearance of Nbor.
[0210] In one embodiment, the decoding involves receiving a second integer value m and the symbol Insert a zero value as the first entry in the cumulative table of occurrences, and the received Insert the integer value m of 2 as the last entry in the cumulative table of symbol occurrences. It may also include ,
[0211] In one embodiment, the received second integer value m is the encoded symbol sequence This can also be obtained from the header metadata.
[0212] In one embodiment, the tree of the divided decoding range is traversed, and each of the nodes in the tree By performing division in front of each of the child nodes of the do, each of the cumulative table This may further include decrypting the entries. Each entry in the cumulative table is the previous The tree of the divided decryption range is traversed sequentially in depth-first order, and division is performed at each node of the tree. It may be decrypted by doing so.
[0213] In one embodiment, the received integer value f may be represented as a bignum. .
[0214] In one embodiment, renormalization is performed to enable faster and more memory-efficient decoding. It may also include the process of transformation.
[0215] In one embodiment, the encoded symbol sequence is a sequence of LZ4 blocks A collection of different components including tokens, literal length, literals, offsets, and match length. It may include combinations.
[0216] In one embodiment, when using the received integer value f, integer arithmetic, shifting, logical operations are performed. Even if you restore the table entries for the symbol occurrences using only calculation, load, and store, good.
[0217] In one embodiment, the entropy decoding is performed using an asymmetric coding system (ANS) entropy Decryption is also acceptable.
[0218] In one embodiment, the sequential division and calculation are repeated for each of the decoding ranges. This may further include performing the action in a recursive manner.
[0219] In one embodiment, binary segmentation based on entropy is performed on the symbol sequence. Each segment of the encoded symbol sequence obtained by performing a split is independently The further includes decoding and reconstructing the symbol sequence based on the segment header. But that's fine.
[0220] In one embodiment, the received entropy-encoded symbol sequence is decoded. This allows the losslessly restored instructions to be executed by at least one processor. It may also include the following.
[0221] In one embodiment, the received entropy-encoded symbol sequence is decoded. By doing so, the graphic data is restored losslessly, at least partially based on this. , at least a portion of the interactive graphic display, at least one graphic This may further include generating the product using a processing device.
[0222] Example 2: Decoder
[0223] In one embodiment, the decoder encodes a symbol occurrence table into an integer value f. A means of accessing and using the integer value f, the symbol includes (i) and (ii) below The system may also include means for performing an operation to decode the table of occurrences of the character. (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry + f mod (the last index entry) Calculate the entry of the first index (+1) and each of the intermediates of the decoding range Decrypt the index entry and f div (the last index entry mentioned above) - Calculate the entry of the first index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the appearance table.
[0224] In such embodiments, the following configurations may also be adopted.
[0225] A means of receiving an entropy-encoded symbol sequence using a symbol occurrence table. Then, by applying the above-calculated symbol occurrence table, the encoded symbol sequence is entered Means for tropy decoding, and / or at least one of the entropy-decoded symbol sequences Means for performing part of the same, and / or entropy-decoded symbol sequences and / or so It may further include means for streaming at least a portion of the information derived therefrom. .
[0226] The above operation involves receiving a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the received second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0227] The above operation involves receiving a second integer value m and the last of the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the received second integer value m is the same as the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0228] The operation described above involves taking the received second integer value m and placing it in the header of the encoded symbol sequence. This may also include information derived from metadata.
[0229] The above operation traverses the tree of the divided decoding range and the child nodes of each node in the tree By performing division at each node before the above, each entry in the cumulative table is restored. To convert to a number, and / or to traverse the tree of the divided decoding range in depth first, The entries in the cumulative table are decrypted by performing division at each node of the tree. It may also include the following.
[0230] The received integer value f may be represented as a bignum.
[0231] The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0232] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0233] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entries for the aforementioned symbol occurrences may be restored.
[0234] The entropy decoding may be asymmetric code number (ANS) entropy decoding. stomach.
[0235] The operation repeats the sequential division and calculation for each of the decoding ranges. To perform a recursive operation, and / or an entropy-based binary segmentation of the symbol sequence Each segment of the encoded symbol sequence obtained by performing a segment decomposition is independent decrypt and reconstruct the symbol sequence based on the segment header, and / Alternatively, by decoding the received entropy-encoded symbol sequence, lossless Executing instructions restored by S, and / or the received entropy-encoded By decoding the sequence of symbols, the graphic data is restored losslessly. Based at least partially, at least a portion of the interactive graphic display, This may further include generating the image using at least one graphics processing unit.
[0236] Example 3: Decoding System
[0237] One embodiment of a system for generating animated graphics includes (i) symbol appearances. At least one data representing an entropy-encoded symbol sequence using the table A small number of integer values f that store the block and (ii) the table of symbol occurrences. Using at least one storage means and the integer value f, the following (i) and (ii) are included: Means for performing a decoding operation of the symbol occurrence table, and the decoded symbol occurrences Apply the table to the encoding represented by the at least one data block. The system comprises means for entropy decoding the sequence of symbols that has been entropy-decoded At least part of the symbol sequence is a graphic and / or graphic animation. This represents an animation based at least partially on the entropy-decoded symbol sequence. The system may also include means for generating illustration graphics. (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry, add f mod (the last index entry). -Calculate the entry of the first index + 1) and each of the intermediates of the decoding range Decode the entry of the index, and fdiv(the entry of the last index - the Calculate the entry for the first index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the appearance table.
[0238] In such embodiments, the following configurations may also be adopted.
[0239] The above operation involves receiving a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the received second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0240] The above operation involves receiving a second integer value m and the last of the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the received second integer value m is the same as the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0241] The second integer value m is obtained from the header metadata of the encoded symbol sequence. That's fine.
[0242] The operation described above involves traversing the tree of the divided decoding range and the child nodes of each node in the tree. By performing division at each node before the entry, each entry in the cumulative table This may further include decrypting the data.
[0243] The above operation traverses the divided decoding range tree sequentially in depth-first order, and the tree By performing division at each node, each entry in the cumulative table is decoded. It may also be included.
[0244] The integer value f may be represented as a bignum.
[0245] The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0246] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0247] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entries for the aforementioned symbol occurrences may be restored.
[0248] The entropy decoding may be an asymmetric coding system (ANS) entropy decoding. stomach.
[0249] The operation repeats the sequential division and calculation for each of the decoding ranges. To perform a recursive operation, and / or an entropy-based binary segmentation of the symbol sequence Each segment of the encoded symbol sequence obtained by performing a segment decomposition is independent decrypt and reconstruct the symbol sequence based on the segment header, and / Alternatively, by decoding the received entropy-encoded symbol sequence, lossless Executing instructions restored in the cloud environment, and / or in the cloud environment, the entropy This may include at least partially decoding the encoded symbol sequence.
[0250] The means for generating the animation graphic is the received entropy code Lossless restored graphic data by decoding the converted symbol sequence. Based at least partially on, at least part of the interactive graphic display You may generate this.
[0251] The means for generating the animation graphics is the entropy-decoded s The animation generates the animation graphic based at least partially on the sequence of elements. It may include a regulator.
[0252] Example 4: Operation method of a decryption cloud-based server or computing device
[0253] One embodiment of a method for operating a cloud-based device is at least one network and / or via a communication link, a remotely located decoder processor and / or decoder This includes sending commands and / or control signals to a processing circuit, and the commands and / or control signals The remotely located decoder processor and / or decoder processing circuit are then used to output symbols. Access the integer value f that encodes the current table, and using the integer value f, the following: Decode the symbol occurrence table including (i) and (ii), and calculate The encoded symbol sequence is then decoded entropy by applying the table of symbol occurrences. To convert and via the at least one network and / or communication link, Both are visuals generated or provided using the entropy-decoded symbol sequence. The system may perform an action that includes receiving audio information. (i) The decoding range of the cumulative table of symbol occurrences is divided sequentially by each intermediate index. By dividing, each entry in the cumulative table of symbol occurrences is decoded. For each of the aforementioned decoding ranges, the decoded entry of the cumulative table of symbol occurrences Starting from the first index entry + f mod (the last index entry) Calculate the entry of the first index (+1) and each of the intermediates of the decoding range Decrypt the index entry and f div (the last index entry mentioned above) - Calculate the entry of the first index (+1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the appearance table.
[0254] As shown in Figure 13H, in one embodiment, an application server or other program The computing device includes a decoding system or decoder, and the decoding system or decoder is " "Within the Loud," that is, located in a server farm or other remote location, with one or more N-series It is connected to communicate with other devices at a distance via a network or other communication connection. A server or other computing device including a decoding system or decoder, for decoding You may receive a formatted (for example, compressed) digital data file, and It may be provided by other means. Here, the term “digital data” means image data, Audio data, computer or processor instructions, computer programs, directives, constants , and may include all kinds of other information. Therefore, the term "data file" The term is not limited to non-executable data, but for example, by one or more processors It may include or encompass one or more executable computer programs. A file may or may not include a file header, and also, wikipe It is listed at dia.org / wiki / List_of_file_formats As a specific standardized one or more types of "data file format" It may or may not be composed.
[0255] The encoded compressed data file is encoded using the above-mentioned types of encoding systems or encoders. It may be provided / generated in this way, and the encoding system or encoder is an application It may or may not be part of the development system, or it may be an application The system may or may not be operationally coupled or connected to the development system. For example, application development systems are developed through human involvement or intervention. Without it, data files may be produced, generated, and / or created. In one embodiment , encoded compressed data files (e.g., computer instructions or programs, processes) Image data such as GPU instructions, texture data, etc. are transmitted through a digital network. , communication links, flash drives and other physically portable tangible storage media, or so Decoding system from encoding system or encoder by any other convenient means, such as The data file may be provided to the system or decoder. The server or other computing device decrypts the data file. After being provided to the encoding system or decoder, the encoded compressed data file is stored or It may include one or more non-volatile memory devices configured to hold data. Other embodiments In this context, the application development server and the application server located on the cloud The platforms may be placed alongside each other (for example, an integrated or linked cloud such as an e-shop). (It may also have a base content authorization and distribution system.)
[0256] The decryption system or decoder deployed on the cloud is stored in non-temporary storage. One or more processors and / or processing circuits and / or graphics that execute the given instructions. The system may include a processing unit. Execution of such instructions may result in the one or more processors and / or processing circuit and / or graphics processing unit, stored encoded compressed data Access the file and the stored encoded and compressed data file as described in detail above. Decrypt using the method described above and convert it into a decrypted uncompressed data file. (One or more of the above steps.) The processor and / or processing circuit and / or graphics processing unit of such storage The decrypted instruction may be executed as is, or the stored instruction may be interpreted or converted as described above. You may perform encoding such as, or use hardware and / or software decoders to emit You may use these methods, or you may combine them as you see fit in the details described above. A coding function may be provided. Alternatively, or in addition to the above, the decoding process may be provided. It may be incorporated into the configuration of a wearable state machine or other hardware circuit decoder. Alternatively, part of the decoding process consists of instructions that can be executed by one or more processors. Furthermore, another part of the decoding process involves one or more hardware components such as ASICs, state machines, etc. It may be composed of roads.
[0257] As shown in Figure 13H, the decoding system or decoder is, for example, a presentation system. From a remotely located device such as a stem, via a network or other communication link In response to one or more control signals received by a cloud-based server or other computing device Decryption may be performed by being activated, started, or controlled. Figure 14A, Block 70 See 2, 704, 706. Therefore, in one embodiment, presentation system The system generates remote commands or remote control signals (see Figure 14B, blocks 802 and 804). , the instruction or signal is transmitted via a network or communication link to a cloud-based server or When sent to another computing device, the command or signal is transmitted to a cloud-based decoding system. Alternatively, the decoder may perform the decoding (Figure 14A, blocks 702, 704, 706). The presentation system may automatically generate the above commands or control signals, for example. For example, from a person playing a specific game or using a specific application The above commands or control signals may be generated upon request. Figure 14B, Block 802, 8 See 04. In response to such human needs, presentation systems are available on the cloud. The decoding system or decoder located there stores the encoded pressure corresponding to the human request. Send a command or control signal specifying a compressed data file or something related thereto, and decode the The stem or decoder accesses a specific stored encoded compressed data file, and The data may be decrypted and the decrypted decompressed data file may be stored in non-temporary memory. Figure 14A, blocks 702, 704, 706). In this way, for example, the presentation Human users of the sensation system can play on demand, specifically the games that human users want to play. Data files related to a specific application that a game or human user wants to use Decryption can now be started.
[0258] A decoding system or decoder deployed on the cloud (as described in detail above) ) Decode the stored encoded (compressed) data file and the corresponding decoded (uncompressed) data After generating the (condensed) data file, the server or other computing device located in the cloud will One or more register files, NAND flash devices, magnetic storage devices, semiconductor read The decrypted data is stored in one or more non-temporary memory devices, such as write memory (RAM). The uncompressed data file is stored (Figure 14A, block 706). The decrypted, uncompressed data files that are delivered are sent to a server or other computing device located in the cloud. The location becomes available for processing and / or transmission.
[0259] In one embodiment, a cloud-based server or other computing device stores, for example, memory. Access the received decrypted (uncompressed) data file (or, in other embodiments, (Obtain these files from another source such as MotoSource) (Figure 14A, Block 7) 08) Computer instructions, computer programs within the decrypted decompressed data file The execution, processing, or use of processor instructions, GPU instructions, image data, or other information. This may be used to automatically generate visual and / or audio presentations (Figure 14A, Block 710). For example, a visual and / or audio presentation is one or more G A series of image frames and / or a series of audio that provide a graphical user interface. It may be composed of frames. For example, a server process located on the cloud. The and / or processor circuit and / or graphics processing unit decodes the uncompressed Computer instructions for data files, computer programs, processor instructions, GPU Commands and other information are executed or processed as they are to provide visual and / or auditory presentations. You may generate a . In another example, a server processor and / or located on the cloud. The processor circuit and / or graphics processing unit are other hardware and / or software. Software emulates the computer instructions for decrypted uncompressed data files. , computer programs, processor instructions, GPU instructions, and other information, at least part Based on the segmentation, visual and / or audio presentations may be generated. For example, below Reference:US11911700;USP10926174;USP9662574;US P20230356078;Game Console GPUs, pp.187-23 7, Peddie, J., The History of the GPU - New Developments Springer, Cham. doi.org / 10 .1007 / 978-3-031-14047-1_4(2022).
[0260] Server processors and / or processing circuits and / or graphics located in the cloud. The processing unit is the same one used to perform the decoding process described above. Alternatively, different processors and / or processing circuits and / or graphics processing units may be used. This may also be done. In one embodiment, a server processor and / or a server processor located on the cloud. The processing circuit and / or graphics processing unit are remotely controlled or operated to decode the Computer instructions for uncompressed data files, computer programs, processor instructions, GPU instructions or other information may be executed or processed. For example, located on the cloud. The server processor and / or processing circuit and / or graphics processing unit that receive commands or It is started, controlled, or operated by a control signal to decode the uncompressed data file. Computer instructions, computer programs, processor instructions, GPU instructions, and other information This may be executed. Such a command or control signal may be used, for example, in a presentation system. Provided by and located on the cloud via a network or other communication link. It may be transmitted to the server or other computing device (Figure 14B, Block 802, 8 (See 04). In one embodiment, the command or control signal is, for example, a specific game or other The application may be specified. In one embodiment, the same command or control signal may be used The decoding system or decoder receives one or more encoded / compressed data associated with the game. The data file is decrypted, and the decrypted decompressed data file is used to play the game or its Graphical audio and / or visual presentations tailored to other applications It may be generated (see Figure 14A).
[0261] In one embodiment, a server or other computing device located on the cloud is associated with One, two or more human users (and / or) via the presentation system Interaction with an automated "bot" in one embodiment allows for visual and / or auditory input. A voice presentation may be generated. For example, a presentation system (one implementation) In terms of form, game consoles, portable or mobile game devices, smartphones, tablets (This may include a computer or other computing device capable of providing human-readable output.) It may have at least one corresponding human user, the human user controlling the joystick , controlling input devices such as pointer-type devices, mouse-type devices, and digital control buttons To create. A presentation system is based on the operation of input devices by human users. It generates input signals and processes them (or information based on them) in real time or near real time. Time (i.e., low latency), via one or more networks or other communication links Then, from the presentation system, a server or other presentation located in the cloud is accessed. It may be sent to a computing device. Different presentation systems can be placed in different locations. Each presentation system has a presentation system or uses Human users to or associated physical and / or virtual input devices Input signals may be generated simultaneously and independently based on the operation of (and / or bots).
[0262] A server or other computing device located in the cloud uses such input signals , graphical audio and / or visual, compatible with games or other applications The presentation or related information may be controlled, at least partially. Example For example, a server or other computing device located on the cloud is used in the first presentation. Using the first input signal provided by the system, the first game character in the game Controls the first avatar and / or the first virtual camera / audio position and viewpoint, and the second presentation Using the second input signal provided by the station system, the second in the game Control the game character or second avatar and / or second virtual camera / audio position viewpoint. It is also possible. A server or other computing device located on the cloud may receive the first input signal and the second input signal. In response to a force signal, at least part of the same or different visual and / or audio display sequence Generate data representing different players or users, for example, whether they are the same or different (for example) (from different virtual camera / audio position viewpoints) visual and / or audio presentation You may provide a multiplayer game or multiuser application that allows users to experience the game. See Figure 14A, blocks 710, 712, 714; Figure 14B, blocks 802, 80 See 4. A server or other computing device located in the cloud may, for example, take about 1 / 30th of a second. Alternatively, the visual and / or audio presentation may be updated every 1 / 60th of a second or at other intervals. Then, information is provided to the presentation system, and the presentation system, Using this information, animated videos and audio are provided in response to the first and second input signals. This may also be the case. In one embodiment, the application server provides video and / or audio frames. Generate a video and stream it to the presentation system, then use a thin client. The presentation system may perform the presentation. Other exemplary implementations In this state, each presentation system is provided locally (and in some cases) The game process runs locally in response to user input (provided remotely), and the app... The communication server provides coordination functionality between presentation systems. In this configuration, the application server is where the presentation system is located locally. Executable code and / or control used to generate user presentations. By downloading encoded and / or decoded data such as adjustment information, the presentation We provide download services to the system.
[0263] In one embodiment, a server or other computing device located on the cloud is such Information related to visual and / or audio presentations, presented to the user For this purpose, streaming to one or any number of presentation systems or their It can be transmitted by other means. See Figure 14A, block 710. As mentioned above, this Cloud-based servers or other computing devices such as decoded instructions or data To access, use, or execute directly on a processor or other hardware, or to restore Translating or interpreting coded instructions or data for use, or decoded instructions or data You can run an emulator configured to be compatible with it. (Figure 14A) See blocks 708 and 710.
[0264] In one embodiment, the emulator has a small number of entropy-decoded symbols. The aforementioned animated graphics are generated based on, or at least partially on, the data.
[0265] In one embodiment, the at least one processor and / or processing circuit is cloud In the environment, it is configured to decode the symbol sequence at least partially.
[0266] In such embodiments, the following configurations may also be adopted.
[0267] The aforementioned reception is at least partially based on the entropy-decoded symbol sequence. The data represents at least a portion of at least one graphical presentation. This may include receiving.
[0268] The method described above involves receiving a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the received second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0269] The method described above involves receiving a second integer value m and the last of the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the received second integer value m is the same as the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0270] The second integer value m is obtained from the header metadata of the encoded symbol sequence. That's fine.
[0271] The method involves traversing the tree of the divided decoding range and the child nodes of each node in the tree. By performing division at each node before the entry, each entry in the cumulative table This may further include decrypting the cumulative table. Each entry in the cumulative table is the partitioned The tree of the decrypted range is traversed sequentially in depth-first order, and division is performed at each node of the tree. It may be decrypted by [this method].
[0272] The received integer value f may be represented as a bignum.
[0273] The above method renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0274] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0275] When using the received integer f, integer operations, shifts, logical operations, loads, and stores are performed. The table entries for the symbol occurrences may be restored using the aforementioned method.
[0276] The entropy decoding may be an asymmetric coding system (ANS) entropy decoding. stomach.
[0277] The method repeats the sequential division and calculation for each of the decoding ranges. To perform a recursive operation, and / or an entropy-based binary segmentation of the symbol sequence Each segment of the encoded symbol sequence obtained by performing a segment decomposition is independent decrypt and reconstruct the symbol sequence based on the segment header, and / Alternatively, by decoding the received entropy-encoded symbol sequence, lossless The instructions restored by the system are to be executed by at least one processor, and / or the system Lossless restoration by decoding the extracted entropy-encoded symbol sequence. Interactive graphics based at least partially on the generated graphic data At least a portion of the display is generated using at least one graphics processing unit. It may also include the act of doing so.
[0278] Example 5: Encoding Method
[0279] An example of an encoding method performed using at least one processor and / or processing circuit. A typical embodiment uses the occurrence of symbols in a sequence of symbols that are entropy coded. To generate a symbol appearance table, and to use the symbol appearance table to generate the symbol Entropy coding of the Boll sequence and using the integer value f, the following (i) and (ii) This includes encoding the table of symbol occurrences and the entropy-encoded The obtained integer value f, which encodes the symbol sequence and the table of symbol occurrences, is shown. This may include forming at least one data block. (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index By splitting, each entry in the cumulative table of symbol occurrences is encoded. And for each of the above encoding ranges, f × (entry of the last index - first index (Dex entry + 1) + (entry of each intermediate index - the first index) By calculating the entry of the code, the entry of each intermediate index of the coding range Encode the contents and update f.
[0280] The above corresponds to exemplary embodiments, which are described in detail below.
[0281] <<Cumulative interpolation coding>> encodes table F in the following way:
[0282] Calculate Table C from Table F
[0283] Encode table C using interpolation coding.
[0284] In such embodiments, the following configurations may also be adopted.
[0285] The encoding involves generating a second integer value m and the cumulative table of the symbol occurrences. Using zero as the lower limit, the generated second integer value m is used as the cumulative tape of the symbol occurrences. It may also include using it as an upper limit for the bull.
[0286] The encoding involves generating a second integer value m and the cumulative table of the symbol occurrences. Inserting a zero value as the first entry, and the generated second integer value m is used It may also include inserting it as the last entry in the cumulative table of Nbol appearances. stomach.
[0287] The encoding is performed in the header associated with the encoded symbol sequence. The data may also include the second integer value m.
[0288] The encoding traverses the tree of the divided encoding range, and after the child nodes of each node By performing multiplication at each node, each entry in the cumulative table is encoded. It may also include 'a'.
[0289] The encoding is performed by traversing the tree of the divided encoding range in reverse order using depth-first method, and each no The process further includes encoding the entries in the cumulative table by performing multiplication with D. But that's fine.
[0290] The encoding further includes representing the generated integer value f as a bignum. That's good too.
[0291] The aforementioned encoding is renormalized to enable faster and more memory-efficient decoding. It may also include the following.
[0292] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0293] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0294] The aforementioned entropy coding may be asymmetric coding system (ANS) entropy coding. stomach.
[0295] The encoding is performed by repeating the sequential division and calculation for each of the encoding ranges or Recursively, and / or entropy-based binary selection of the symbol sequence. Each segment of the encoded symbol sequence obtained by segment partitioning is independently The sequence is encoded and the order of each segment in the symbol sequence within the segment header is specified. It may also include the act of doing so.
[0296] The symbol sequence is a lossless encoded executable instruction and / or interact Control the graphics processing unit to generate at least a portion of the vivid graphic display. It may include a bit sequence configured to do so.
[0297] The above encoding uses entropy-based binary segment partitioning before encoding, The process further includes segmenting the symbol sequence, and the binary based on the entropy. Segmentation involves the symbol output of all segments that result in each segmentation step. This may involve reducing or minimizing the sum of the entropy and size of the current table.
[0298] Example 6: Encoder
[0299] In another embodiment, the encoder is at least partially an animation graphics A sequence of symbols that contributes to the generation of a symbol, and the symbol sequence is entropy-encoded. A means for generating a symbol occurrence table based on the appearance of Bor, and the symbol occurrence table A means for entropy encoding a symbol sequence using a marker, and the following operations (i) and (ii) The means includes, and uses an integer value f to encode the symbol occurrence table, and the A sequence of tropically coded symbols and a table of the occurrences of the coded symbols. means for forming at least one data block representing the integer value f, and at least The system may also include means for storing another data block in a storage means. (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index By splitting, each entry in the cumulative table of symbol occurrences is encoded. And for each of the above encoding ranges, f × (entry of the last index - first index (Deck entry + 1) + (the entry of the intermediate index - the first index) By calculating the entry of the intermediate index of the coding range, Encode "ri" and update "f".
[0300] In such embodiments, the following configurations may also be adopted.
[0301] The above operation involves generating a second integer value m and, under the cumulative table of symbol occurrences Using zero as the limit, the generated second integer value m is used in the cumulative table of symbol occurrences. It may also include using it as an upper limit for the value.
[0302] The above operation involves generating a second integer value m and the cumulative table of symbol occurrences. Inserting a zero value as the first entry, and the generated second integer value m is the single This may further include inserting it as the last entry in the cumulative table of Bor appearances. .
[0303] The above operation is performed in the header associated with the encoded symbol sequence, The second integer value m may be included as 'ta'.
[0304] The above operation traverses the tree of the divided encoding range and, after each node's child node... Then, by performing multiplication at each node, each entry in the cumulative table is encoded. It may also include the following.
[0305] The tree of the divided coding ranges is traversed in reverse order using depth-first method, and multiplication is performed at each node. By doing so, each entry in the cumulative table is encoded, and / or the generated Representing an integer value f as a bignum, and / or a faster and more memory-efficient This may further include renormalizing the data so that it can be encoded.
[0306] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0307] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0308] The aforementioned entropy coding may be asymmetric coding system (ANS) entropy coding. stomach.
[0309] For each of the above coding ranges, the sequential division and calculation are repeated and / or recursively to perform and / or entropy-based binary segmentation for the symbol sequence. Each segment of the encoded symbol sequence obtained by the division is coded independently. To assign a number and specify the order of each segment in the symbol column within the segment header, It may also include the following.
[0310] The symbol sequence may include lossless encoded executable instructions.
[0311] The aforementioned sequence of symbols generates at least a portion of an interactive graphic display. It includes a bit string configured to control at least one graphics processing unit. But that's fine.
[0312] Before encoding, the symbol sequence is divided into segments using entropy-based binary segmentation. Further including segment partitioning, binary segment partitioning based on the entropy. This is a table of symbol occurrences for all segments that occur at each segment splitting step. The sum of entropy and size may be reduced or minimized.
[0313] Example 7: Encoding System
[0314] One embodiment of a system for generating animated graphics is at least partially A sequence of symbols that contributes to the generation of animated graphics, and which is entropy coded. Means for generating a symbol occurrence table based on the occurrence of symbols in a given symbol sequence. and means for entropy encoding the symbol sequence using the symbol occurrence table. This includes the following operations (i) and (ii), and uses an integer value f to determine the occurrence of the symbol. Means for encoding the bull, the entropy-encoded symbol sequence, and the encoded An integer value f representing a table of symbol occurrences, and at least one data block representing this f. means for forming, means for storing the at least one data block in the storage device, It may be provided. (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index By splitting, each entry in the cumulative table of symbol occurrences is encoded. For each of the above encoding ranges, f × (last index entry - first index entry) (entry of the first index + 1) + (entry of each intermediate index - entry of the first index) By calculating the entry(s), the entries for each intermediate index of the encoding range are obtained. Encode and update f.
[0315] In such embodiments, the following configurations may also be adopted.
[0316] The operation further comprises means for generating a second integer value m, and the cumulative number of the symbol occurrences. Using the value zero as the lower limit of the table, the generated second integer value m is used for the symbol occurrence. It can also be used as the upper limit for the cumulative table.
[0317] The operation further comprises means for generating a second integer value m, and the cumulative data of the symbol occurrences Insert a zero value as the first entry of the bull, The generated second integer value m is set to the last entry in the cumulative table of symbol occurrences. You may insert it.
[0318] The above operation is performed in the header associated with the encoded symbol sequence, The second integer value m may be included as 'ta'.
[0319] The aforementioned operation traverses the tree of the divided encoding range, and after each node's child node Each entry in the cumulative table may be encoded by performing multiplication at each of the aforementioned nodes. stomach.
[0320] The above operation traverses the tree of the divided coding range in reverse order using depth-first method, and each node By performing multiplication with, each entry in the cumulative table is encoded, and / or Representing the received integer value f as a bignum, and / or faster and more memoizable. This may further include renormalizing the code to enable more efficient encoding.
[0321] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0322] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0323] The aforementioned entropy coding may be asymmetric coding system (ANS) entropy coding. stomach.
[0324] For each of the above coding ranges, the sequential division and calculation are repeated and / or recursively Means for performing and / or entropy-based binary segmentation for the symbol sequence Each segment of the encoded symbol sequence obtained by the division is coded independently. A means for numbering and specifying the order of each segment in the symbol column within the segment header. It's wise to be even more prepared.
[0325] The symbol sequence may include lossless encoded executable instructions.
[0326] The aforementioned sequence of symbols generates at least a portion of an interactive graphic display. It includes a bit string configured to control at least one graphics processing unit. But that's fine.
[0327] The above operation uses entropy-based binary segment partitioning before encoding. The method further includes segmenting the numbol sequence, and binary segmenting based on the entropy. Segment division involves the symbolic occurrence of all segments that result at each segment division step. The sum of the entropy and size of the table may be reduced or minimized.
[0328] Example 8: Program for Decryption
[0329] One embodiment of the program accesses an integer value f that encodes a table of symbol occurrences. A means to determine the symbol occurrences, including (i) and (ii) below, using the integer value f. A computer may be used as a means to perform the operation of decrypting the table. (i) The decoding range of the cumulative table of symbol occurrences is sequentially applied to each intermediate index. By splitting, each entry in the cumulative table of symbol occurrences can be decoded. And for each of the above decoding ranges, the decoded e of the cumulative table of symbol occurrences From the entry, the first index entry + f mod (the last index entry) Calculate the entry of the first index (Tri) and each of the middle of the decoding range Decode the entry of the index between them, f div (the entry of the last index) Update f by calculating the entry of the first index mentioned above (+1). (ii) From the decoded entry in the cumulative table of symbol occurrences, Calculate the table of occurrences of the character.
[0330] In such an embodiment, the computer may be instructed to perform the following actions:
[0331] A means of receiving an entropy-encoded symbol sequence using a symbol occurrence table. Then, by applying the calculated symbol occurrence table, the encoded symbol sequence is obtained Means for entropy decoding and / or at least one of the entropy-decoded symbol sequences Using both, data representing at least a part of the graphical user interaction Means for streaming and / or a small number of the entropy-decoded symbol sequence means of performing at least part of it, and / or at least the entropy-decoded symbol sequence Computers may also function as a means of streaming information based on some of it. .
[0332] The computer is further made to function as a means for receiving a second integer value m, (i) In the above, zero is used as the lower limit of the cumulative table of symbol occurrences, and the The second integer value m obtained may be used as the upper limit of the cumulative table of symbol occurrences.
[0333] The computer is further made to function as a means for receiving a second integer value m, and the ( i) Insert a zero value as the first entry in the cumulative table of symbol occurrences The second integer value m received is set to the last entry in the cumulative table of symbol occurrences. You may insert it.
[0334] The second integer value m received is the header metadata of the encoded symbol sequence. It may be received as such.
[0335] The computer then traverses the tree of the divided decoding range, and each of the trees By performing division in front of each node before the child nodes of the node, the cumulative table Means for decoding each entry, and / or the tree of the divided decoding ranges by depth By traversing sequentially and performing division at each node of the tree, each of the cumulative table is obtained. It may also function as a means of decrypting the data.
[0336] In such embodiments, the following configurations may also be adopted.
[0337] The received integer value f may be represented as a bignum.
[0338] This further includes renormalization to enable faster and more memory-efficient decoding. That's fine.
[0339] The encoded symbol sequence is the token, literal length of the sequence of LZ4 blocks. It may include a set of different components, including literals, offsets, and match lengths.
[0340] When using f, only integer operations, shifts, logical operations, loads, and stores are used. The entry in the symbol occurrence table may be restored from the numerical value f.
[0341] The entropy decoding may be an asymmetric coding system (ANS) entropy decoding. stomach.
[0342] In (i) above, the sequential division and calculation are repeated for each of the decoding ranges. and / or the sequential division and calculation are performed recursively for each of the decoding ranges. That's fine.
[0343] The computer further uses an entropy-based binary for the symbol sequence. Each segment of the encoded symbol sequence obtained by segment division is A means for independently decoding and reconstructing the symbol sequence based on the segment header. It may be made to function in that way.
[0344] Example 9: Program for encoding
[0345] One embodiment of the program is based on the occurrence of symbols in a sequence of symbols that are entropy coded. A means for generating a symbol occurrence table based on the symbol occurrence table, and using the symbol occurrence table The means for entropy encoding the symbol sequence and the integer value f, the following (i) and (ii) means of performing the operation of encoding the table of symbol occurrences The computer may be made functional. (i) Cumulative number of symbol occurrences from the table of symbol occurrences (ii) Calculate the table and determine the coding range of the cumulative table of symbol occurrences. By sequentially dividing using the intermediate index, each of the cumulative table of symbol occurrences The encoding of the contents, wherein for each encoding range, f × (last index (Entry of the first index + 1) + (Entries of each of the aforementioned intermediate indexes) By calculating the entry of the first index, the preceding encoding range The entropy code is used to encode the entries of each intermediate index and update f, The obtained integer, which encodes the coded symbol sequence and the table of symbol occurrences. Form at least one data block representing the value f.
[0346] In such embodiments, the following configurations may also be adopted.
[0347] The computer is further made to function as a means for receiving a second integer value m, and the Using the value zero as the lower limit of the cumulative table of nbol occurrences, the received second integer value m is This may be used as the upper limit of the cumulative table of symbol occurrences.
[0348] The computer further includes means for receiving a second integer value m, and the accumulation of the symbol occurrences. Means for inserting a zero value as the first entry in the table, the received second integer value m It functions as a means for inserting the symbol as the last entry in the cumulative table of symbol occurrences. You may do so.
[0349] The encoding is performed in the header associated with the encoded symbol sequence. The data may also include the second integer value m.
[0350] The aforementioned operation traverses the tree of the divided encoding range, and after each node's child node By performing multiplication at each of the aforementioned nodes, each entry in the cumulative table is encoded. It may also include the following.
[0351] The above operation traverses the tree of the divided coding range in reverse order using depth-first method, and each node The further includes encoding the entries in the cumulative table by performing multiplication. That's good too.
[0352] The operation described above may further include representing the received integer value f as a bignum. good.
[0353] The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. It may also include the following.
[0354] The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. It may include a set of different components, including an offset and a match length.
[0355] When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The entries in the table of symbol occurrences may be encoded.
[0356] The aforementioned entropy coding may be asymmetric coding system (ANS) entropy coding. stomach.
[0357] For each of the above encoding ranges, the sequential division and calculation are repeated or performed recursively. Entropy-based binary segmentation is performed on the rows and / or the symbol sequence. Each segment of the encoded symbol sequence obtained by performing this process is encoded independently. means for specifying the order of each segment in the symbol column within the segment header, Furthermore, the computer may be made to function.
[0358] The symbol sequence is a lossless encoded executable instruction and / or interact Control the graphics processing unit to generate at least a portion of the vivid graphic display. It may include a bit sequence configured to do so.
[0359] The above operation uses entropy-based binary segment partitioning before encoding. The method further includes segmenting the numbol sequence, and binary segmenting based on the entropy. Segment division involves the symbolic occurrence of all segments that result at each segment division step. This may involve reducing or minimizing the sum of the entropy and size of the table.
[0360] Example 10: The encoding device and the decoding device may be the same device.
[0361] Example 11: The encoding method and decoding method can be combined as a common overall method. good.
[0362] Example 12: Algorithm 1 for encoding / decoding an entropy table Mu 2.
[0363] Example 13: Encoding a portion of the cumulative table in Algorithm 1 / Algorithm 2 The part that decrypts.
[0364] Example 14: Algorithm 3 for encoding / decoding symbol sequences of arbitrary length / Algorithm 4
[0365] Example 15: Using low-cost entropy-based binary segment partitioning for arbitrary length Algorithms 5 and 6: Encode / decode the symbol sequence to improve compression ratio. .
[0366] Example 16: Group LZ4 block sequence streams by type and group Encoding / decoding an LZ4 block involves independently encoding part or all of the block. Algorithm 5 / Algorithm 6.
[0367] Exemplary related items
[0368] Binary interpolation encoding:
[0369] Binary Interpolative Coding for Effecti ve Index Compression: https: / / link.springer.com / article / 10.10 23 / A:1013002601898
[0370] Housekeeping for Prefix Coding: https: / / www.researchgate.net / publicatio n / 3160122
[0371] Large-Alphabet Semi-Static Entropy Codi ng Via Asymmetric Numeral Systems https: / / www.researchgate.net / publicatio n / 342752784
[0372] Encoding of probability distributions f or Asymmetric Numeral Systems https: / / www.researchgate.net / publicatio n / 352373099
[0373] Binary segment division:
[0374] Selective review of offline change poin t detection methods: https: / / arxiv.org / abs / 1801.00718
[0375] ruptures: change point detection in Pyt hon: https: / / arxiv.org / abs / 1801.00826
[0376] Change Point Detection with Copula Entr opy based Two-Sample Test: https: / / arxiv.org / abs / 2403.07892
[0377] Change-point detection using the condit ional entropy of ordinal patterns: https: / / arxiv.org / abs / 1510.01457
[0378] Optimal detection of changepoints with a linear computational cost: https: / / arxiv.org / abs / 1101.1438
[0379] Using an adaptive entropy-based thresho ld for change detection methods - Applic ation to fault-tolerant fusion in collab Orative mobile robotics: https: / / ieeexplore.ieee.org / document / 88 20667
[0380] All patents and publications cited herein are those expressly stated. It is incorporated by reference.
[0381] The present invention has been described above with reference to the most practical and preferred embodiments currently available. However, the present invention is not limited to the disclosed embodiments, but rather to the appended claims. It is understood that this includes various changes and equivalent components that fall within the purpose and scope. It should be done.
Claims
1. A decoding method that is performed using at least one processor and / or processing circuit. hand, Receiving an entropy-encoded symbol sequence using a symbol occurrence table. and, The system receives an integer value f that encodes the table of symbol occurrences, Using the received integer value f, the symbol occurrences include (i) and (ii) below. Decrypting the table, (i) The decoding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index. By performing the following partition, each entry in the cumulative table of symbol occurrences is decoded. And for each of the above decoding ranges, From the decoded entries in the cumulative table of symbol occurrences, The first index entry + f mod (the last index entry) Calculate the entry of the first index (Tri) and each of the middle of the decoding range Decrypt the entries in the inter-index, f div (the entry of the last index - the entry of the first index) Calculate (intri + 1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the table of when Bor appears. Applying the decoded symbol occurrence table, the received encoded symbol A decoding method comprising entropy decoding of a sequence of elements.
2. It receives a second integer value m, Using the value zero as the lower limit of the cumulative table of symbol occurrences, the received second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. The decoding method described in item 1.
3. It receives a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The second integer value m received above is set to the last entry in the cumulative table of symbol occurrences. The decoding method according to claim 1, further comprising inserting the following:
4. The second integer value m received is the header metadata of the encoded symbol sequence. A decoding method according to claim 2 or 3, obtained from the above.
5. The tree of the divided decryption range is traversed, and before each node of the tree, Then, by performing division at each node, each entry in the cumulative table is decrypted. A decoding method according to any one of claims 1 to 3, further comprising the following:
6. Each entry in the aforementioned cumulative table is ordered in depth-first order of the tree of the divided decoding ranges. The method described in claim 5 involves tracing to the node and performing division at each node of the tree to decode the result. Decryption method.
7. The received integer value f is represented as bignum, in any of claims 1 to 3. The decryption method described in [the document].
8. This further includes renormalization to enable faster and more memory-efficient decoding. The decoding method according to any one of claims 1 to 3.
9. The encoded symbol sequence is the token, literal length of the LZ4 block sequence. Claim 1 includes a set of different components including literals, offsets, and match lengths. A decryption method described in any of the following three points.
10. When using the received integer f, integer operations, shifts, logical operations, loads, and stores are performed. Any of claims 1 to 3, using the symbol to restore the table entries for the symbol occurrences. The decryption method described in [reference].
11. The entropy decoding is an asymmetric coding system (ANS) entropy decoding, claim The decryption method described in any one of items 1 to 3.
12. The process further includes repeating the sequential division and calculation for each of the aforementioned decoding ranges. The decoding method according to any one of claims 1 to 3.
13. The decoding range further includes recursively performing the sequential division and calculation described above for each of the aforementioned decoding ranges. The decoding method according to any one of claims 1 to 3.
14. By performing entropy-based binary segmentation on the aforementioned symbol sequence, Each segment of the encoded symbol sequence obtained is decoded independently, and the segment Claims 1 to 3 further include reconstructing the symbol sequence based on the header. The decryption method described below.
15. By decoding the received entropy-encoded symbol sequence, lossless The claim further includes executing the instructions recovered by at least one processor. A decryption method according to any one of 1 to 3.
16. By decoding the received entropy-encoded symbol sequence, lossless Based at least partially on the restored graphic data, interactive At least a portion of the graphic display is performed using at least one graphics processing unit. The decoding method according to any one of claims 1 to 3, further comprising generating by
17. A system for generating animated graphics, Using a symbol occurrence table, we can represent an entropy-encoded sequence of symbols. It stores another data block and an integer value f that encodes the symbol occurrence table. at least one storage means, Using the integer value f, the symbol occurrence table including (i) and (ii) below is Means for performing the decoding operation, (i) The decoding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index. By performing the following partition, each entry in the cumulative table of symbol occurrences is decoded. And for each of the above decoding ranges, From the decoded entries in the cumulative table of symbol occurrences, the first index The entry for the index + f mod (the entry for the last index - the first index) The entry for the 'x' + 1 is calculated, and the entry for each intermediate index of the decoding range is calculated. Decode it, f div (the entry of the last index - the entry of the first index) Calculate (intri + 1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the table of when Bor appears. Applying the decoded symbol occurrence table, the at least one data block means for entropy decoding the encoded symbol sequence represented by the lock Prepare, At least a portion of the entropy-decoded symbol sequence is graphic and / or This represents graphic animation behavior. Animate based at least partially on the entropy-decoded symbol sequence A system further equipped with means for generating graphics.
18. The aforementioned operation is, It receives a second integer value m, Using the value zero as the lower limit of the cumulative table of symbol occurrences, the received second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. The system described in item 17.
19. The aforementioned operation is, It receives a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The second integer value m received above is set to the last entry in the cumulative table of symbol occurrences. The system according to claim 17, further comprising inserting the following:
20. The second integer value m is obtained from the header metadata of the encoded symbol sequence. The system according to claim 18 or 19.
21. The operation described above involves traversing the tree of the divided decoding range and the child nodes of each node in the tree. By performing division at each node before the entry, each entry in the cumulative table The system according to any one of claims 17 to 19, further comprising decoding the data.
22. The above operation traverses the divided decoding range tree sequentially in depth-first order, and the tree By performing division at each node, each entry in the cumulative table is decoded. The system according to claim 21, further comprising the above.
23. The integer value f is represented as bignum, according to any one of claims 17 to 19. The system.
24. The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. The system according to any one of claims 17 to 19, further comprising the above.
25. The encoded symbol sequence is the token, literal length of the LZ4 block sequence. Claim 17 includes a set of different components, including literals, offsets, and match lengths. A system as described in any of the above (19).
26. When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entry for the symbol occurrence is restored according to any one of claims 17 to 19. The system described.
27. The entropy decoding is an asymmetric coding system (ANS) entropy decoding, claim The system described in any of paragraphs 17 to 19.
28. The operation described above involves repeating the sequential division and calculation for each of the decoding ranges. The system further includes the system according to any one of claims 17 to 19.
29. The above operation involves recursively performing the sequential division and calculation for each of the above decoding ranges. The system according to any one of claims 17 to 19, further comprising the above.
30. The above operation performs an entropy-based binary segmentation on the symbol sequence. By doing so, each segment of the encoded symbol sequence obtained is decoded independently. , further comprising reconstructing the symbol sequence based on the segment header, claim The system described in any one of items 17 to 19.
31. The above operation involves decoding the received entropy-encoded symbol sequence. Any of claims 17 to 19 further includes executing instructions that have been restored in a more lossless manner. The system described below.
32. The means for generating the animation graphic is the received entropy code Lossless restored graphic data by decoding the converted symbol sequence. Based at least partially on, at least part of the interactive graphic display A system according to any one of claims 17 to 19, which generates [the specified product].
33. The means for generating the animation graphics is the entropy-decoded s The animation generates the animation graphic based at least partially on the sequence of elements. A system according to any one of claims 17 to 19, comprising a regulator.
34. The above operation reduces the number of entropy-encoded symbol sequences in the cloud environment. The method according to any one of claims 17 to 19, further comprising at least partial decoding. Stem.
35. An encoding method that is performed using at least one processor and / or processing circuit. hand, The symbol occurrences are determined based on the occurrences of symbols within the entropy-encoded symbol sequence. To generate a table, Entropy coding the symbol sequence using the symbol occurrence table. 、 Using an integer value f, the symbol occurrence table including (i) and (ii) below is used. To assign a number, (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences by their respective intermediate indexes By sequentially dividing, each entry in the cumulative table of symbol occurrences is encoded. And, for each of the above encoding ranges, f × (last index entry - first index entry + 1) + ( The entries of each intermediate index (the entries of the first index) are calculated. By doing so, the entries of each intermediate index in the encoding range are encoded, and f is updated. to do Encoding the entropy-encoded symbol sequence and the symbol occurrence table. To form at least one data block representing the obtained integer value f, An encoding method that includes this.
36. To generate a second integer value m, Using a zero value as the lower limit of the cumulative table of symbol occurrences, the generated second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. The encoding method described in item 35.
37. To generate a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The generated second integer value m is set to the last entry in the cumulative table of symbol occurrences. The encoding method according to claim 35, further comprising inserting the following:
38. The encoding is performed in the header associated with the encoded symbol sequence. The encoding according to claim 36 or 37, which includes including the second integer value m as the data. method.
39. The tree of the divided encoding range is traversed, and after the child nodes of each node, each of the no By multiplying with the code, each entry in the cumulative table is further encoded. The encoding method according to any one of claims 35 to 37, including
40. The tree of the divided coding ranges is traversed in reverse order using depth-first method, and multiplication is performed at each node. Claim 39 further includes encoding each entry in the cumulative table. The encoding method described above.
41. Claims 35 to 37 include representing the generated integer value f as bigum. The encoding method described in one of the following.
42. This further includes renormalization to enable faster and more memory-efficient decoding. The encoding method according to any one of claims 35 to 37.
43. The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. Claims 35 to 37 include a set of different components, including an offset and a match length. The encoding method described below.
44. When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. any one of claims 35 to 37, which encodes the entry in the table of symbol occurrences. The encoding method described above.
45. The entropy coding is an asymmetric coding system (ANS) entropy coding, claim The encoding method described in any of paragraphs 35 to 37.
46. The process further includes repeating the sequential division and calculation for each of the aforementioned coding ranges. The encoding method according to any one of claims 35 to 37.
47. The process further includes performing the sequential division and calculations recursively for each of the aforementioned coding ranges. The encoding method according to any one of claims 35 to 37.
48. By performing entropy-based binary segmentation on the aforementioned symbol sequence, Each segment of the encoded symbol sequence obtained is encoded independently, and segment The claim further includes specifying the order of each segment of the symbol column in the header. The encoding method described in any one of 35 to 37.
49. The symbol sequence includes a lossless encoded executable instruction, as described in claim 35. The encoding method.
50. The aforementioned sequence of symbols generates at least a portion of an interactive graphic display. Claims 35 to include a bit sequence configured to control a graphics processing device. The encoding method described in any of 37.
51. Before encoding, the symbol sequence is divided into segments using entropy-based binary segmentation. Further including segment partitioning, binary segment partitioning based on the entropy. This is a table of symbol occurrences for all segments that occur at each segment splitting step. Claims 35 to 37, which reduce or minimize the sum of entropy and size. The encoding method described below.
52. A sequence of symbols that contributes at least partially to the generation of animated graphics. Based on the occurrence of symbols in the entropy-encoded symbol sequence, the symbol occurrences are determined. Means for generating a table, means for entropy encoding the symbol sequence using the symbol occurrence table, 、 The following operations (i) and (ii) are performed, and an integer value f is used to determine the table of symbol occurrences A means for encoding the code, (i) Calculate a cumulative table of symbol occurrences from the table of symbol occurrences. (ii) The coding range of the cumulative table of symbol occurrences by their respective intermediate indexes By sequentially dividing, each entry in the cumulative table of symbol occurrences is encoded. And, for each of the above encoding ranges, f × (last index entry - first index entry + 1) + (previous Calculate the entries for each intermediate index (the entries for the first index). By doing so, the entries of each intermediate index in the encoding range are encoded, and f is updated. to The entropy-encoded symbol sequence and the themes of the encoded symbol occurrences Means for forming at least one data block representing an integer value f representing a bull, An encoder comprising means for storing at least one data block in a storage means. 。
53. The aforementioned operation is, To generate a second integer value m, Using a zero value as the lower limit of the cumulative table of symbol occurrences, the generated second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. The encoder described in item 52.
54. The aforementioned operation is, To generate a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The generated second integer value m is set to the last entry in the cumulative table of symbol occurrences. The encoder according to claim 52, further comprising inserting the encoder.
55. The above operation is performed in the header associated with the encoded symbol sequence, The encoding according to claim 53 or 54, which includes including the second integer value m as t Da.
56. The above operation traverses the tree of the divided encoding range and, after each node's child node... Then, by performing multiplication at each node, each entry in the cumulative table is encoded. The encoder according to claim 53, further comprising the following:
57. The above operation traverses the tree of the divided coding range in reverse order using depth-first method, and each node This further includes encoding each entry in the cumulative table by performing multiplication. The encoder according to claim 56.
58. The operation further includes representing the generated integer value f as bignum. An encoder as described in any of the requests 52 to 54.
59. The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. The encoder according to any one of claims 52 to 54, further comprising the above.
60. The aforementioned symbol sequence consists of tokens, literal lengths, and literals of the LZ4 block sequence. Claims 52 to 54 include a set of different components including an offset and a match length. The encoder is described in either of the following places.
61. When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. any one of claims 52 to 54, which encodes the entry in the table of symbol occurrences. The encoder described above.
62. The entropy coding is an asymmetric coding system (ANS) entropy coding, claim The encoder described in any of items 52 to 54.
63. The operation described above involves repeating the sequential division and calculation for each of the encoding ranges. The encoder according to any one of claims 52 to 54.
64. The above operation involves recursively performing the sequential division and calculation for each of the above coding ranges. The encoder according to any one of claims 52 to 54, further comprising the above.
65. The above operation performs an entropy-based binary segmentation on the symbol sequence. Each segment of the encoded symbol sequence obtained by performing this process is encoded independently. Furthermore, specifying the order of each segment in the symbol column within the segment header. The encoder according to any one of claims 52 to 54.
66. Claims 52 to 5, wherein the symbol sequence includes a lossless encoded executable instruction. An encoder as described in any of item 4.
67. The aforementioned sequence of symbols generates at least a portion of an interactive graphic display. Includes a bit string configured to control at least one graphics processing unit. The encoder according to any one of claims 52 to 54.
68. The above operation uses entropy-based binary segment partitioning before encoding. The method further includes segmenting the numbol sequence, and binary segmenting based on the entropy. Segment division involves the symbolic occurrence of all segments that result at each segment division step. Claim 52 reduces or minimizes the sum of the entropy and size of the table. An encoder as described in any of 54.
69. A means to access an integer value f encoded from a symbol occurrence table, Using the integer value f, the following table of symbol occurrences is formed, including (i) and (ii). A means for performing the operation of decrypting, (i) The decoding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index. By performing the following partition, each entry in the cumulative table of symbol occurrences is decoded. And for each of the above decoding ranges, From the decoded entries in the cumulative table of symbol occurrences, the first index The entry of the first index + f mod (the entry of the last index - the first index) The entry (+1) is calculated, and the entries of each intermediate index in the decoding range are recovered. Numbered, f div (the entry of the last index - the entry of the first index) Calculate (intri + 1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the table of when Bor appears. A decoder equipped with a decoder.
70. A means of receiving an entropy-encoded symbol sequence using a symbol occurrence table. and, Applying the calculated symbol occurrence table, the encoded symbol sequence is entered The decoder according to claim 69, further comprising means for ropy decoding.
71. The means further comprises performing at least a portion of the entropy-decoded symbol sequence. The decoder according to claim 70.
72. The entropy-decoded symbol sequence and / or information derived therefrom The decoder according to claim 70, further comprising means for streaming a portion of the data.
73. The aforementioned operation is, It receives a second integer value m, Using the value zero as the lower limit of the cumulative table of symbol occurrences, the received second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. A decoder according to any of the requests 69 to 72.
74. The aforementioned operation is, It receives a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The second integer value m received above is set to the last entry in the cumulative table of symbol occurrences. The decoder according to any one of claims 69 to 72, further comprising inserting the decoder.
75. The operation described above involves taking the received second integer value m and placing it in the header of the encoded symbol sequence. The decoder according to claim 73 or 74, further comprising obtaining from metadata.
76. The operation described above involves traversing the tree of the divided decoding range and the child nodes of each node in the tree. By performing division at each node before the code, the entries in the cumulative table are obtained. A decoder according to any one of claims 69 to 72, further comprising decoding.
77. The above operation traverses the divided decoding range tree sequentially in depth-first order, and the tree By performing division at each node, each entry in the cumulative table is decoded. The decoder according to claim 76, which includes the above.
78. The received integer value f is represented as bignum, according to any of claims 69 to 72 The decoder listed below.
79. The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. A decoder according to any one of claims 69 to 72, further comprising the above.
80. The encoded symbol sequence is the token, literal length of the LZ4 block sequence. Claim 69 includes a set of different components including literals, offsets, and match lengths. A decoder as described in any of 72.
81. When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entry for the symbol occurrence is restored according to any one of claims 69 to 72. Decoder as described.
82. The entropy decoding is an asymmetric coding system (ANS) entropy decoding, claim A decoder according to any one of paragraphs 69 to 72.
83. The operation described above involves repeating the sequential division and calculation for each of the decoding ranges. The decoder further includes the decoder according to any one of claims 69 to 72.
84. The above operation involves recursively performing the sequential division and calculation for each of the above decoding ranges. A decoder according to any one of claims 69 to 72, further comprising the above.
85. The above operation performs an entropy-based binary segmentation on the symbol sequence. By doing so, each segment of the encoded symbol sequence obtained is decoded independently. , further comprising reconstructing the symbol sequence based on the segment header, claim A decoder according to any one of 69 to 72.
86. The above operation involves decoding the received entropy-encoded symbol sequence. Further, the goal is to execute instructions that have been restored more losslessly on at least one processor. A decoder according to any one of claims 69 to 72, including the decoder described in any one of claims 69 to 72.
87. The above operation involves decoding the received entropy-encoded symbol sequence. Therefore, based at least partially on the lossless restored graphic data, the interface At least a portion of the active graphics display is handled by at least one graphics processing unit. The Deco according to any one of claims 69 to 72, further comprising generating using a processing device. -da.
88. Computers, A means to access an integer value f encoded from a symbol occurrence table, Using the integer value f, the following table of symbol occurrences is formed, including (i) and (ii). A means for performing the operation of decrypting, (i) The decoding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index. By performing the following partition, each entry in the cumulative table of symbol occurrences is decoded. And for each of the above decoding ranges, From the decoded entries in the cumulative table of symbol occurrences, the first index The entry of the first index + f mod (the entry of the last index - the first index) The entry (+1) is calculated, and the entries of each intermediate index in the decoding range are recovered. Numbered, f div (the entry of the last index - the entry of the first index) Calculate (intri + 1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the table of when Bor appears. A program that makes something work.
89. The aforementioned computer further, A means of receiving an entropy-encoded symbol sequence using a symbol occurrence table. and, Applying the calculated symbol occurrence table, the encoded symbol sequence is obtained The program according to claim 88, which functions as a means for decoding tropy.
90. The computer further comprises at least one of the entropy-decoded symbol sequences. Using the part, data representing at least a part of the graphical user interaction is stored The program according to claim 89, which functions as a means of reaming.
91. The computer further comprises at least one of the entropy-decoded symbol sequences. The program according to claim 89, which functions as a means for executing a part.
92. The computer further comprises at least one of the entropy-decoded symbol sequences. The program according to claim 89, which functions as a means for streaming information based on the section Hmm.
93. The aforementioned computer is further, It functions as a means of receiving a second integer value m. In (i) above, zero is used as the lower limit of the cumulative table of symbol occurrences, The second integer value m received is used as the upper limit of the cumulative table of symbol occurrences. The program described in item 88.
94. The aforementioned computer is further, It functions as a means of receiving a second integer value m. In (i) above, the first entry in the cumulative table of symbol occurrences is zero. Insert the received second integer value m to the last of the cumulative table of symbol occurrences. The program according to claim 88, which is inserted as an entry.
95. The second integer value m is received from the header metadata of the encoded symbol sequence. The program according to claim 93 or 94.
96. The operation described above involves traversing the tree of the divided decoding range and the child nodes of each node in the tree. By performing division at each node before the entry, each entry in the cumulative table A program according to any one of claims 88 to 94, further comprising decrypting the data.
97. The above operation traverses the divided decoding range tree sequentially in depth-first order, and the tree By performing division at each node, each entry in the cumulative table is decoded. The program according to claim 96, which includes the above.
98. The received integer value f is represented as bignum, according to any of claims 88 to 94 The program described below.
99. The aforementioned operation renormalizes to enable faster and more memory-efficient decoding. A program according to any one of claims 88 to 94, further comprising the above.
100. The encoded symbol sequence is the token, literal length of the LZ4 block sequence. Claim 89, which includes a set of different components including literals, offsets, and match lengths. A program as described in any of 94 to 94.
101. The above operation uses only integer arithmetic, shifting, logical operations, loading, and storing, and the integer From the value f, the entry in the symbol occurrence table is restored according to claims 88 to 94. The program described in either of the following.
102. The entropy decoding is an asymmetric coding system (ANS) entropy decoding, claim A program as described in any of paragraphs 89 to 94.
103. In (i) above, the sequential division and calculation are repeated for each of the decoding ranges. A program according to any one of claims 88 to 94.
104. In (i) above, for each decoding range, the sequential division and the calculation are recursive A program according to any one of claims 88 to 94, which is performed in [location].
105. The computer further uses an entropy-based binary for the symbol sequence. Each segment of the encoded symbol sequence obtained by segment division is A means for independently decoding and reconstructing the symbol sequence based on the segment header. A program according to any one of claims 89 to 94, which enables the program to function.
106. Remotely located Deco via at least one network and / or communication link A method that includes sending commands and / or control signals to a processor and / or decoder processing circuit. A law which, by the command and / or control signal, the remotely located decoder processor The and / or decoder processing circuit, (a) Accessing an integer value f that encodes the symbol occurrence table, (b) Using the integer value f, the symbols appearing in the following ways, including (i) and (ii) Decrypting the cable and (i) The decoding range of the cumulative table of symbol occurrences is sequentially determined by each intermediate index. By performing the following partition, each entry in the cumulative table of symbol occurrences is decoded. And for each of the above decoding ranges, From the decoded entries in the cumulative table of symbol occurrences, the first index The entry of the first index + f mod (the entry of the last index - the first index) The entry (+1) is calculated, and the entries of each intermediate index in the decoding range are recovered. Numbered, f div (the entry of the last index - the entry of the first index) Calculate (intri + 1) and update f. (ii) From the decoded entry in the cumulative table of symbol occurrences, the symbol Calculate the table of when Bor appears. (c) Apply the calculated symbol occurrence table to the encoded symbol sequence Entropy decoding and Through the aforementioned at least one network and / or communication link, at least partially The visual and / or visual generated or provided using the entropy-decoded symbol sequence. A method for performing an action that includes receiving audio information.
107. The aforementioned reception is at least partially based on the entropy-decoded symbol sequence. The data represents at least a portion of at least one graphical presentation. The method according to claim 106, including receiving.
108. It receives a second integer value m, Using the value zero as the lower limit of the cumulative table of symbol occurrences, the received second table This further includes using a numerical value m as the upper limit of the cumulative table of symbol occurrences. The method described in item 106.
109. It receives a second integer value m, Inserting a zero value as the first entry in the cumulative table of symbol occurrences, The second integer value m received above is set to the last entry in the cumulative table of symbol occurrences. The method according to claim 106, further comprising inserting the object.
110. The second integer value m is obtained from the header metadata of the encoded symbol sequence. The method according to claim 108 or 109.
111. The tree of the divided decryption range is traversed, and before each node of the tree, Then, by performing division at each node, each entry in the cumulative table is decrypted. The method according to any one of claims 106 to 109, further comprising the following:
112. Each entry in the aforementioned cumulative table is ordered in depth-first order of the tree of the divided decoding ranges. The method described in claim 111 involves tracing to the node and performing division at each node of the tree to decode the result. Method of loading.
113. The received integer value f is represented as bignum, according to claims 106 to 109. One of the methods described above.
114. This further includes renormalization to enable faster and more memory-efficient decoding. The method according to any one of claims 106 to 109.
115. The encoded symbol sequence is the token, literal length of the LZ4 block sequence. Claim 10, which includes a set of different components including literals, offsets, and match lengths. The method described in any one of 6 to 109.
116. When using the aforementioned integer value f, only integer operations, shifts, logical operations, loads, and stores are used. The table entry for the symbol occurrence is restored, any one of claims 106 to 109. The method used.
117. The entropy decoding is an asymmetric coding system (ANS) entropy decoding, claim The method described in any one of paragraphs 106 to 109.
118. The process further includes repeating the sequential division and calculation for each of the aforementioned decoding ranges. The method according to any one of claims 106 to 109.
119. The decoding range further includes recursively performing the sequential division and calculation described above for each of the aforementioned decoding ranges. The method according to any one of claims 106 to 109.
120. By performing entropy-based binary segmentation on the aforementioned symbol sequence, Each segment of the encoded symbol sequence obtained is decoded independently, and the segment Claims 106 to 1 further include reconstructing the symbol sequence based on the header. The method described in any of 09.
121. By decoding the received entropy-encoded symbol sequence, lossless The claim further includes executing the instructions recovered by at least one processor. The method described in any one of 106 to 109.
122. By decoding the received entropy-encoded symbol sequence, lossless Based at least partially on the restored graphic data, interactive At least a portion of the graphic display is performed using at least one graphics processing unit. The method according to any one of claims 106 to 109, further comprising generating by