WO2024030698A1 - Model-code separation architecture for data compression using sum-product networks - Google Patents
Model-code separation architecture for data compression using sum-product networks Download PDFInfo
- Publication number
- WO2024030698A1 WO2024030698A1 PCT/US2023/067911 US2023067911W WO2024030698A1 WO 2024030698 A1 WO2024030698 A1 WO 2024030698A1 US 2023067911 W US2023067911 W US 2023067911W WO 2024030698 A1 WO2024030698 A1 WO 2024030698A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- graph
- source
- model
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3068—Precoding preceding compression, e.g. Burrows-Wheeler transformation
- H03M7/3079—Context modeling
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6005—Decoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
Definitions
- Compression systems can be divided into four domains depending on prior knowledge about the data and the metric for assessing the data reconstruction quality. Along one axis, systems can be divided based on the fidelity of reconstruction. If the reconstruction is perfect, i.e., the decoded output is the same as the input, the system performs “lossless” compression. On the other hand, “lossy” compression systems make a trade-off between compression rate and distortion to produce reconstructions that are perceptually “close” to the input.
- compression systems can be divided based on data model specificity.
- the “data model” captures all prior knowledge about the data source. This knowledge could be in the form of perceptual information or statistical information about the source. If the data model is specified, then the system is typically used for compressing specialized data. If the data model is not specified, then the system is typically used for compressing generic data, i.e., universal compression. Since a data model is required for compression, these systems learn statistical structure on-the-fly from the source data (or “input data”).
- the source model is a key component in any compression system and may be designed to match the entropy of the source.
- Conventional compression systems may use tailored architectures for encoding data. The encoder of such a system uses the knowledge about the source model to transform the data into an intermediate representation in which the data is easier to code into a datastream.
- the datastream is a sequence of bits that is obtained using the intermediate features and the source model.
- the decoder parses this datastream to reproduce the data in the reverse process. This process is not automatic and the decoder must be endowed with information about the source model along with the coding mechanism.
- a change to the source model or coding mechanism generally requires an overhaul of both the encoder and decoder, making superior technology harder to adopt due to standardization and legacy reasons.
- An example of this is the JPEG-2000 standard which has still not completely replaced its 30- year-old predecessor, JPEG, despite demonstrating superior performance.
- the design of compression systems for each data type can be costly and time- consuming.
- model-code separation technology whereby the encoding scheme is not tied to a particular source model and changes to the decoder do not affect the encoded representation.
- the encoder of the model “blindly” encodes the data using a universal encoding scheme into a succinct and potentially non-unique datastream. Note that the encoder is “free” of the source model. In the decoder, the datastream is used to recover a solution that agrees with the original data using knowledge about the source model and is therefore “model-adaptive.”
- Such architectures may use a graphical model to describe statistical structure in the source and may be limited to work with data for which the source graphical model is known.
- SPNs sum-product networks
- SPNs are (deep) machine learning models for learning statistical structure in data, used here to address the learning problem in graphical models.
- the resulting system is adaptable to different data types, is highly modular and easy to deploy on optimized hardware.
- Disclosed systems and methods may be used for storage and communication of big data and may be implemented within architectures for compression of images, text, audio, genomics data etc.
- Disclosed embodiments defer all the assumed knowledge of the data to the decoder without loss in compression efficiency.
- Disclosed embodiments combine an SPN with modern error correcting codes to use iterative decoding algorithms to solve the data compression decoding problem.
- Methodology described herein extends the ideas of iterative decoding on graphical models to SPN source models implemented as deep learning architectures, thus bridging the gap between traditional statistical inference algorithms and modern machine learning models. Also described is a machine learning methodology that allows for improvements in compression performance as source modeling capabilities evolve in the future.
- Techniques described herein allow the source model to be adjusted to match the computational load at the decoder, depending on the hardware capabilities of the receiver.
- Disclosed embodiments can be used in environments with computationally lightweight encoders (e.g., sensors) and computationally heavy decoders (e.g., GPU- enabled smartphones).
- Systems described herein are modular and easily modified. For example, improvements in modeling the source only require a redesign of the data model used in the decoder without change to the coding mechanism.
- the same source model can be used for both lossless and lossy compression of data sources by the introduction of an additional modular component to model distortion in decoding.
- a method of decoding data can include: receiving data compressed by a universal encoder and a data model based on a sum-product network (SPN) representing statistical structure inherent to source data, the source data corresponding to an uncompressed version of the data; and decompressing the data using the data model.
- the method can further include: receive a coding transform associated with the compressed data; and generating a code graph representing the coding transform, wherein the decompressing of the data uses both the data model and the code graph.
- SPN sum-product network
- the method can further include generating a combined graph having the data model, the code graph, and a virtual controller having nodes representing symbols in a sequence of the source data, wherein the decompressing of the data uses the combined graph.
- the decompressing of the data can include running belief propagation (BP) on the combined graph to compute approximate marginals of the source data sequence that satisfies constraints of both the data model and the code graph.
- the running of BP on the combined graph may include passing, by the virtual controller, statistical information between the code graph and the data model.
- the statistical information can be defined over a binary alphabet and the method may further include translating, by the virtual controller, the statistical information from the binary alphabet to an alphabet over which the compressed data is defined.
- the decompressing of the data can include losslessly recovering the uncompressed data.
- the decompressing of the data may include lossily recovering the uncompressed data.
- the model can be based on a deep generalized convolutional SPN (DGCSPN).
- DGCSPN deep generalized convolutional SPN
- a decoder for use in a data compression system with model-code separation may include one or more processors configured to perform said method embodiments.
- FIG.1 shows an example of a data compression system and architecture with joint model-code architecture.
- FIG. 2 shows an example of a probabilistic graphical model (PGM), referred to as a factor graph.
- PGM probabilistic graphical model
- FIG.3 shows an example of a Tanner graph representing a low density parity- check (LDPC) matrix.
- FIG.4 shows an example of a sum-product network (SPN) that can be used for data compression, according to some embodiments of the present disclosure.
- SPN sum-product network
- FIG.5 shows an example of a deep generalized convolutional SPN (DGCSPN) that can be used for data compression, according to some embodiments.
- DGCSPN deep generalized convolutional SPN
- FIG.6 shows another example of an SPN that can be used for data compression, according to some embodiments.
- FIG. 7 shows an example of a data compression system and architecture with model-code separation, according to some embodiments.
- FIG.8 shows an example of a combined source-code decoder that may be used within the system and architecture of FIG. 7.
- FIG.9 shows another example of a combined source-code decoder that may be used within the system and architecture of FIG.7.
- FIG. 10 shows an example of a combined SPN source-code decoder that may be used within the system and architecture of FIG.7, according to some embodiments.
- FIG. 11 illustrates a process for decompressing data that may be used with model-code separation systems and architectures, according to some embodiments.
- FIG. 32 illustrates a process for decompressing data that may be used with model-code separation systems and architectures, according to some embodiments.
- FIG. 12 is a block diagram of a processing device on which methods and processes disclosed herein can be implemented, according to some embodiments of the disclosure.
- the drawings are not necessarily to scale, or inclusive of all elements of a system, emphasis instead generally being placed upon illustrating the concepts, structures, and techniques sought to be protected herein.
- DETAILED DESCRIPTION Joint Model-Code Architectures [0034] Turning to FIG.1, many existing data compression systems (or “compressors”) employ a joint model-code architecture.
- An illustrative compression system 100 can have an encoder 102 and a decoder 104.
- Encoder 102 receives source data 120 and generates a compressed 122 version of the data as output.
- Illustrative encoder 102 includes a data processor 106 and a coding mechanism (or “codec”) 108. As shown, with a joint model-code architecture, the encoder 102—or more specifically coding mechanism 108—employs a model 130 of the source data 120. For example, in the case of Huffman Coding, data processor 106 can learn the data model 130 by building a binary tree that stores the frequency of symbols that appear in the source data.
- the construction of the binary tree can be referred to as “processing” the data.
- the coding mechanism 108 uses the data model 130, i.e., the frequencies of the symbols, to efficiently compress the data by assigning smaller length binary codes to more frequently occurring symbols and assigning larger length codes to less frequently occurring symbols. It has been shown that Huffman Coding achieves entropy and is the optimal code choice for a given data model. However, if the data model 130 changes, the previously learned code may be sub-optimal. Moreover, the data model 130 and the coding mechanism 108 must generally be learned for every new instance/type of source data 120. Similar drawbacks exist for other compression standards and systems that do not employ “model-code” separation. Notation [0036] Certain notation used throughout this disclosure is now introduced.
- s denotes a random variable and ⁇ denote a scalar variable.
- ⁇ denotes a scalar variable.
- the ⁇ ’th element of ⁇ ⁇ is denoted as s ⁇ .
- ⁇ ⁇ may be written as a column vector [s ⁇ s ⁇ ... s ⁇ ] ⁇ or as a sequence (s ⁇ , s ⁇ , ... , s ⁇ ).
- ⁇ ⁇ and ⁇ ⁇ denote the non-random version of the same.
- ⁇ is reserved for a matrix and ⁇ for a set.
- ⁇ ⁇ denotes the vector representing the ⁇ ’th row of ⁇ .
- ⁇ is used to denote the vector of all ones.
- Graphical models are sometimes used herein to represent probability distributions.
- Embodiments of the present disclosure relate to model-code separation systems, architectures, and techniques.
- a model-code separation architecture for data compression can be decomposed into two sub-components — 1) a model-free code, a 2) the model-adaptive decoder.
- the fundamental concepts behind the model-free code come from the field of information theory, coding theory and communications.
- the entropy rate of the sequence is defined as ⁇ H ⁇ ( ⁇ ) ⁇ ⁇ ⁇ li ⁇ m ⁇ ⁇ ⁇ ⁇ ( ⁇ ).
- the Huffman code is an example of a code which achieves entropy since it is designed specifically for the true source distribution ⁇ ⁇ ⁇ ( ⁇ ⁇ ).
- ⁇ ⁇ ( ⁇ ⁇ , ... , ⁇ ⁇ ) be a sequence drawn from ⁇ ⁇ ⁇ over a finite alphabet ⁇ ⁇ .
- the typical set ⁇ ⁇ ⁇ contains those sequences that satisfy, 2 ⁇ ( ⁇ ( ⁇ ) ⁇ ) ⁇ ⁇ ⁇ ( ⁇ ( ⁇ ⁇ ( ⁇ ) ⁇ 2 ⁇ ⁇ ) ⁇ ).
- a fixed rate a source an unknown distribution ⁇ ⁇ ⁇ consists of two mappings, the encoder ⁇ ⁇ : ⁇ ⁇ ⁇ ⁇ 1,2, ... , 2 ⁇ ⁇ , (5) and the decoder, ⁇ ⁇ : ⁇ 1,2, ... , 2 ⁇ ⁇ ⁇ ⁇ ⁇ .
- PGMs Probabilistic Graphical Models
- the functions defined over the maximal cliques are called the clique potentials and are positive everywhere.
- the term ⁇ in (9.1) is called the partition function.
- the partition function is generally hard to compute as it requires a sum (or integral if variables are continuous) over all possible combinations of the inputs.
- PGMs can be constructed over directed graphs in which conditional dependencies are conveyed by the edge direction.
- the edge potentials represent conditional probability distributions.
- the clique potentials in undirected graphs are not necessarily distributions.
- the equivalent notation ⁇ ⁇ is used to denote the random variable ⁇ ⁇ .
- a factor graph is a bipartite graph consisting of two types of nodes — variable nodes ( ⁇ ) and factor nodes (F). Variable nodes represent random variables and factor nodes represent functions over the random variables.
- FIG. 2 illustrates how an undirected graph 202 can be converted to a factor graph 204 by creating a factor node (e.g., ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , etc.) for each maximal clique in the undirected graph 202.
- a factor node e.g., ⁇ ⁇ , ⁇ ⁇ , ⁇ ⁇ , etc.
- Approximate marginals of a distribution ⁇ ⁇ ⁇ can be computed using the sum- product or belief propagation algorithm (BP).
- the BP algorithm is iterative and converges to the (estimated) marginals with complexity exponential in the treewidth of the graph.
- BP algorithm for undirected graphical models.
- Let ⁇ ( ⁇ , E) be an undirected graphical model for ⁇ ⁇ ⁇ that factorizes as (10).
- BP utilizes the marginals for all nodes by passing messages along the edges of the graph. This can allow for reusing messages in the graph to compute marginals for all nodes in fewer operations than the naive method. The messages can be interpreted as local beliefs about the marginal of a node.
- Two node computations of BP on an undirected graph are: ⁇ The “message” from a node ⁇ to ⁇ .
- BP can also be done on factor graphs and is often more easily described since the local factorization structure is clearly represented as factors. Since factor graphs consist of two types of nodes, two types of messages can be computed. Since one can convert any undirected graph to a factor graph, the message computation described below is equivalent to (12) and (13). Three node computations of BP on a factor graph are: ⁇ The “variable to factor message” from a variable node ⁇ to factor node ⁇ .
- variable-factor edge ( ⁇ , ⁇ ) ⁇ E compute the messages ⁇ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ( ⁇ ) ⁇ ⁇ ( ⁇ ⁇ ), (14) ⁇ The “factor to variable message” from a factor node ⁇ to variable node ⁇ .
- Algorithm 1 Belief propagation (BP) on a factor graph.
- Data: Graph ⁇ ( ⁇ ,F,E) and factor potentials ⁇ ⁇ for all ⁇ ⁇ F.
- the complexity of BP is ⁇ (
- ⁇ is the number of iterations.
- BP converges to the true marginals of the distribution. If the graph has loops, BP is not guaranteed to converge, but theory shows that the approximate beliefs are often close to the true marginals. In the presence of loops the BP algorithm is an approximate inference procedure and it is called loopy BP.
- the “treewidth” of a graph is defined as one less than the size of the maximal clique, ⁇ ( ⁇ ) ⁇ ⁇ m ⁇ a ⁇ x ⁇ ⁇
- ⁇ ( ⁇ ) ⁇ ). [0078] This disclosure denotes by ⁇ ⁇ the vectorized version of the messages from node ⁇ to node ⁇ , ⁇ ⁇ [ ⁇ ⁇ (0) ... ⁇ ⁇ (
- the empirical distribution of the samples converges to the true distribution, which are used to approximate marginals.
- the law of large numbers states that the expected value of random variable over a large number of trials approaches the true mean of the distribution.
- efficiently sampling allows moments of distributions to be computed.
- the Metropolis-Hastings algorithm can be used to sample from distributions with undirected graphical model representations.
- a specialized version of this algorithm called the Gibbs sampler, can be used to generate samples from PGMs.
- the Gibbs sampler works by first sampling a node ⁇ using its marginal distribution and then sampling a node ⁇ from the conditional distribution ⁇ ⁇
- the conditional distributions can be computed efficiently using the belief propagation algorithm.
- Model-Free Coding [0081] Embodiments of the present disclosure may utilize a code that is model-free and relatively simple to implement. In addition, the code may be selected such that it can be decoded via simple transformations and statistical inference algorithms.
- LDPC codes are a family of linear codes developed for use in channel coding.
- a code is linear if it is a subspace of some vector space ⁇ ⁇ , where ⁇ is a finite-field. Let the source sequence belong to a ( ⁇ ⁇ ⁇ ) dimensional subspace of the vector space ⁇ ⁇ of dimension ⁇ , where ⁇ is a finite-field of size
- the ⁇ additional codeword symbols are called the parity-check symbols and are used to verify that the source sequence is correctly decoded.
- ⁇ ⁇ 0 ⁇ . (21) [0084] LDPC in the parity-check matrix.
- all codes over the binary alphabet are defined and the parity-check matrix for source coding is used.
- the maximum value of the marginal distribution of symbol ⁇ in (23) is desired.
- Conditional distribution can be rewritten as marginalization over the joint distribution that factorizes according to (24).
- the an matrix is referred to as a “Tanner graph.”
- the marginals for all nodes can be computed by running BP over the factor graph.
- FIG.3 shows a Tanner graph 300 representing ⁇ , for this example.
- circular elements 302a–g represent inputs
- rectangular elements 304a–c represent parity-check matrix constraints
- lines indicate which inputs are involved with particular constraints.
- SPNs sum-product networks
- junction tree algorithm transforms a loopy graph into a tree structured graph with alphabet size per node upper bounded by
- SPNs help overcome many of these issues. They are probabilistic models that admit exact and tractable inference with complexity linear in the size of the model. [0098] Turning to FIG.4, an SPN is a deep probabilistic that represents a joint probability distribution over a set of random variables represented by a random vector, herein denoted ⁇ ⁇ .
- an SPN ⁇ is a rooted directed acyclic graph (DAG) whose leaves are tractable probability distributions and whose internal nodes are sums and products.
- Each outgoing edge ( ⁇ , ⁇ ) from a sum node is associated with a non-negative weight ⁇ ⁇ , ⁇ .
- the value of an SPN ⁇ ( ⁇ ⁇ ) is the value of its root.
- the “scope” of a node ⁇ is the set of variables that are descendants of ⁇ .
- the scope of a leaf node is the set of variables represented by the node. [0100]
- the following procedure may be used to evaluate an SPN. Let ⁇ be an SPN and let ⁇ ⁇ be a source sequence with a desired likelihood.
- the evaluation of the SPN can proceed from the leaves to the root with the following rules: 1. If ⁇ is a leaf node of the DAG, it is associated with a probability distribution ⁇ ⁇ .
- the output of the node is ⁇ ⁇ ( ⁇ ⁇ ⁇ ⁇ ( ⁇ ) ).
- ⁇ is a product node
- ⁇ is a sum node
- Given partial marginal probabilities of the input can still be computed. In this case, the evaluation procedure can be modified to marginalize out unobserved values in the leaf distribution, i.e., ⁇ ⁇ ⁇ ⁇ ( ⁇ ) ⁇ .
- the SPN is valid if it always correctly computes marginal probabilities (e.g., unnormalized marginal probabilities).
- An SPN is “complete” if all children of a sum node have identical scopes.
- An SPN is “decomposable” if all children of the same product node have pairwise disjoint scopes. Thus, as appreciated herein, if an SPN is complete and decomposable, then it is valid.
- a “normalized” SPN is an SPN wherein the weights at every sum node add up to one; such an SPN always outputs normalized probabilities.
- Illustrative SPN 400 includes a root node 402, a plurality of product nodes 404a–c (404 generally) connected thereto, a plurality of sum nodes 406a–d (406 generally) each connected to one of more of the product nodes 404a–c, and a plurality of leaf nodes 408a– d (408 generally) each connected to a pair of the sum nodes 406a–d.
- the number of nodes, types of nodes, and arrangement of nodes shown in FIG.4 is merely illustrative.
- Leaf nodes 408 have singular scope and can contain any tractable distribution. If the leaf distribution is an indicator, the weights along the edges from the leaf 408 to sum node 406 are parameters for a categorical distribution. If the leaf distributions are, for example, Gaussian then the SPN can be interpreted as mixture model. [0106] Consider the illustrative SPN 400 in FIG.4 defined over binary random variables, ⁇ ⁇ , ⁇ ⁇ .
- the leaf “distribution” can be set to a constant function that always evaluates to 1.
- the result in (32) is useful in computing marginals.
- SPNs can perform fast inference on high-treewidth graphs which would otherwise require approximate inference with PGMs.
- SPNs can circumvent the need for approximate inference algorithms to compute the partition function since it can be evaluated by marginalizing out all variables, i.e., setting all leaf distribution functions to one.
- SPNs can represent non-factorizable high treewidth models more compactly. SPNs can compactly represent contextual-independencies with fast inference times by coalescing nodes and edges together. Whereas PGMs learned from data are often intractable unless the model size is kept small, SPNs can learn from large amounts of data with fast learning algorithms.
- SPNs can be made very deep and can be implemented very efficiently using tensorized operations. Moreover, parameter learning is very efficient and hence the same SPN architecture can be used to model different sources of data. [0113] SPNs also offer advantages over arithmetic circuits and deep generative models. SPNs are more general than arithmetic circuits because the leaf distribution need not be an indicator but rather any tractable distribution. Moreover, SPNs can be made quite deep and have weights along sum nodes to model complex distributions. Deep generative models typically only output the likelihood of complete data whereas SPNs can answer marginal queries of incomplete data. Deep Generalized Convolutional Sum-Product Networks [0114] Turning to FIG.5, as previously discussed, SPNs can be implemented on GPUs using convolutions efficiently.
- FIG. 5 shows an example of a DGCSPN 500 having eight layers 502a–i with layer zero 502a corresponding to the leaf nodes and layer eight 502i corresponding to the root node.
- Each leaf node in layer zero 502a corresponds to a single symbol in the input source, i.e., layer zero 502a comprises the leaf distributions.
- Layers 502b–i may alternate between product nodes and sum nodes, as shown.
- DGCSPN 500 can include padding nodes (e.g., node 504), which are set to 0 in the log domain, are used to ensure that GPU-optimized convolutions can be used correctly.
- the numbers within individual nodes indicate “scope” and all children of the same sum node have the same scope.
- the number of layers, number of nodes, and placement of edges shown in FIG. 5 are merely illustrative and the general concepts, techniques, and structures sought to be protected herein are not limited to any particular DGCSPN architecture.
- ⁇ Leaf nodes have singular scope, i.e., they correspond to a single symbol in the input source.
- ⁇ Sum layers and product layers are stacked in an alternating fashion.
- ⁇ Log-probabilities can be propagated to avoid underflow issues.
- ⁇ A sum node is implemented in the log-domain using the log-sum exponential “trick.”
- ⁇ Product layers are implemented as convolutions with increasing dilation rates at every subsequent layer.
- the convolutional patches overlap in every layer since the stride chosen is one.
- subsequent product layers must use a dilation factor that is twice that of the previous product to layer.
- a dilation factor of k in a convolution adds k ⁇ 1 zeros between each element of the kernel. This is shown in FIG. 5 by the increasing distance between inputs to product nodes as the layer increases.
- ⁇ output channels are created at every product node by multiplying ⁇ instances/channels of a sum node with disjoint scopes from the previous sum layer.
- Padding nodes e.g., node 504a
- Padding nodes which are set to 0 in the log domain, are used to ensure that GPU-optimized convolutions can be used correctly as previously mentioned.
- a DGCSPN architecture can utilize “indicator leaves” (e.g., instead of Gaussian leaves) to allow for computing marginal probabilities easily for use with BP on Tanner graphs.
- a DGCSPN architecture may provide support for 1-dimensional convolutions (e.g., for learning non- image sources).
- a DGCSPN architecture may provide a routine for computing the mean percentage error (MPE) of a partially observed source for non- Gaussian leaf distributions.
- MPE mean percentage error
- a DGCSPN architecture may provide a routine to compute unary marginals in parallel.
- a DGCSPN architecture implementation such as the PyTorch implementation DeeProb-kit—may be modified to provide one more or said features.
- Parameter Learning [0119] Parameter learning in SPNs can done via gradient descent or the expectation- maximization (EM) algorithm. In the case where DGCSPNs are implemented using PyTorch, a deep learning framework, gradient descent may be used for learning the model parameters. In some cases, only indicator leaves may be used and, thus, the only weights that need to be learned are the weights along edges emanating from a sum node. [0120] For numerical stability, log-probabilities can be propagated in the SPN.
- gradient computation can be implemented in PyTorch using the optimized autograd function. In some cases, these gradients can be used to compute the marginals of all the leaf node variables in a single forward and backward pass of the network.
- Parallel Marginal Computation [0124] Now described is a procedure to compute the marginals of all the variables in a single forward and backward pass of an SPN with singular scope indicator leaves. It has been shown that in an arithmetic circuit, the posterior marginal of a leaf variable can be computed using gradients. Though arithmetic circuits use indicator leaves, the same formula can give the leaf distribution assignment probability in a general SPN.
- ⁇ ⁇ ⁇ ) ⁇ ⁇
- data compression may be provided using an SPN along with a BP algorithm.
- an architecture may be selected that is capable of using externals beliefs about the input source to answer probabilistic queries.
- These external beliefs statistical properties about the source.
- the external belief is treated as an independent factor in the joint distribution.
- SPNs can consume external beliefs in a similar manner by multiplying the external belief distribution with the leaf distributions.
- FIG.6 illustrates this augmentation by modifying the SPN from FIG.4.
- SPN 600 of FIG.6 includes leave nodes 602a–d corresponding to external beliefs in addition to leaf nodes 604a–d corresponding to the leaf distribution.
- the external beliefs are multiplied with the leaf distribution via product nodes 606a–d, as shown.
- the SPN has indicator leaves.
- the posterior marginal formula can be modified to remove the effect of scaling the leaf distribution when doing a forward pass through the model.
- FIG.7 shows an example of a data compression system having a model-code separation architecture.
- An illustrative compression system 700 can have an encoder 702 and a decoder 704.
- Encoder 702 receives source data 720 and generates a compressed 722 version of the data as output.
- the compressed data 712 may be stored to non-volatile computer memory, transmitted over a computer network, etc.
- Decoder 704 receives compressed data 722 as input and generates reproduced data 724 using a model 730 of the source data. In the case of lossless compression, reproduced data 724 will be identical to the source data 720.
- the architecture of FIG.7 uses a compression pipeline with a model-free encoder and model-adaptive decoder. Note that the decoder is provided with some information about the coding mechanism to decode the source data.
- the functionality described herein in conjunction with encoder 702 and/or decoder 704 may be implemented using computing software, firmware, hardware, or some combination thereof.
- encoder 702 and/or decoder 704 may correspond to computer-executable instructions in the form of a computer application, library, module, component, etc.
- encoder 702 and/or decoder 704 may comprise computer hardware (e.g., processors, memory, etc.) configured to execute said computer-executable instructions.
- PGM-based Model-Code Separation Architecture [0138] Here described is a model-code separation architecture that uses a PGM as the data model. The architecture follows the design of FIG.
- the decoder can be made as powerful as needed.
- the decoder is aware of the source structure in the form of a source graph, a PGM representing the statistical structure in the input signal. This suggests that the ideal code would be one that lends itself to optimal decoding using belief propagation.
- coding transform generally refers to any set of values that is applied to a source sequence to generate compressed/coded data.
- a parity-check matrix ⁇ is one example of coding transform.
- coding transforms may take a non-matrix form.
- ⁇ ⁇ is decoded using BP on the Tanner graph of ⁇
- the decoded output might not satisfy the statistical structure inherent to the source.
- the source graph captures this structure and BP can be run over this graph by providing the beliefs from the Tanner graph as external node potentials. This process can be carried out iteratively until the source is decoded correctly.
- the matrix ⁇ enforces ⁇ constraints which can be represented by a factor graph as demonstrated above.
- This factor graph is [0144]
- This graph is called the “source in external beliefs from the code graph, as discussed next.
- a combined source-code decoder 800 can make use of a single graph 801 formed by combining a source graph 802 and a code graph 804.
- the source graph 802 and code graph 804 share common nodes denoting the source symbols, as represented by virtual controller 806.
- Decoder 800 may correspond to decoder 704 of FIG.7, for example.
- the decoder runs BP on the combined graph 801 to compute approximate marginals of the source sequence that satisfies both the source constraints and the code constraints. Only the nodes representing the source symbols interact with the graphs 802, 804 on either side of the virtual controller 806. Assume that the source graph 802 only has unary node potentials and pairwise potentials along edges.
- BP can be carried out efficiently using the following rules: ⁇ Begin by initializing all messages in both graphs 802, 804 to 1/
- ⁇ is a node in the graph 804, accumulate the messages from controller 806, ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ , by treating them as additional factor nodes, ⁇ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ⁇ ).
- ⁇ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ⁇ ).
- ⁇ ⁇ ( ⁇ ⁇ ) run BP on the code graph and marginal of ⁇ ⁇ by accumulating messages from all neighbors of ⁇ except the controller node. Send this message to the controller and call it ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ .
- ⁇ is a node in the source graph
- ⁇ ′ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ⁇ ⁇ ( ⁇ ⁇ ).
- ⁇ Using the updated node potentials, run BP on the source graph and compute the marginal of ⁇ ⁇ by accumulating messages from all neighbors of ⁇ except the controller node. Send this message to the controller and call it ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ .
- ⁇ Compute the unnormalized beliefs at every node by taking of the beliefs from both graphs.
- FIG. 9 shows another example of a combined source-code decoder 900 that can make use of a single graph 901 formed by combining a source graph 902 and a code graph 904.
- a translator module can be introduced in the architecture.
- the virtual controller 806 of FIG.8 may be configured to perform translation, as shown.
- Decoder 900 may correspond to decoder 704 of FIG.7, for example.
- a source sequence ⁇ ⁇ of length ⁇ where each symbol is drawn from an alphabet ⁇ of size
- ⁇ .
- the translator of 906 can be configured to translate the symbols into a representation that can be used by the architecture.
- the code graph of the architecture that uses LDPC codes is constrained to use a bit-level representation of the source sequence.
- sequence of binary digits ⁇ ⁇ ⁇ ( ⁇ ⁇ , ⁇ , ⁇ ⁇ , ⁇ , ... , ⁇ ⁇ , ⁇ ) ⁇ ⁇
- ⁇ : ⁇ ⁇ ⁇ 0,1 ⁇ ⁇ is Another translator function
- ⁇ : ( ⁇ ⁇ R ⁇ ) ⁇ ( ⁇ 0,1 ⁇ ⁇ R ⁇ ) ⁇ can be defined that maps messages over ⁇ , ⁇ (
- the graycode transformation constrains large alphabet symbols with similar values to have bit representations with only a few bit flips.
- the integer three with binary representation 011 and the integer four with binary representation 100 are similar, especially in the context of intensity of pixels, the binary representations are hard to compress due to three bit-flips.
- the graycode representations 010 and 110 for three and four respectively only differ by a single bit flip.
- graycodes are beneficial when using codes that leverage the differences in neighboring values.
- a decoder may not converge without some non-trivial initialization of the messages.
- embodiments of the present disclosure can transmit a subset of the input source symbols uncompressed. This process is sometimes referred to as “doping.” Doping acts as a seed for the decoding algorithm and helps in reducing the solution set of possible source sequence corresponding to a codeword.
- FIG.9 thus illustrates a model-code separation architecture for lossless compression of sources with arbitrary alphabet size.
- SPN-based Model-Code Separation Architecture [0157]
- a combined source-code decoder can make use of a DGCSPN, such as described above in the context of FIG. 5, as DGCSPN admits relatively efficient parameter learning using gradient descent.
- Other SPN architectures such as the random tensorized SPN (RAT-SPN)—may also be employed, according to the general concepts, techniques, and structures sought to be protected herein.
- RAT-SPN random tensorized SPN
- each sum and product node outputs ⁇ and ⁇ output channels respectively, with ⁇ typically equal to ⁇ .
- channel sizes 32, 64 or 128 may be used.
- the channel size may be selected depending on the dataset being used.
- models may be trained using the Adam optimizer with a learning rate between 0.01 and 0.1 depending on the source data.
- FIG. 10 shows example of a combined SPN source-code decoder 1000 that can include or otherwise make use of combined graph 1001, formed from source SPN graph (or simply “SPN”) 1002 and code graph 1004, and a virtual controller 1006 having translation functionality.
- Decoder 1000 may correspond to decoder 704 of FIG.7, for example.
- Arrows between controller 1006 and SPN 1002 denote the direction of message flow.
- Messages from code graph 1004 are fed as external beliefs to SPN 1002 and hence they are multiplied with the leaf distributions (e.g., using the technique described above with FIG. 6.
- external belief node 1008 can be multiplied by leaf distribution node 1010, as shown.
- Messages from source SPN graph 1002 can be accumulated from the gradients at the leaf nodes of the SPN and sent to controller 1006.
- Messages sent from code graph 1004 to controller 1006 may be over the alphabet ⁇ 0,1 ⁇ .
- a message may be translated before it is provided to the SPN 1002 as external beliefs.
- the external belief provided to the SPN is ⁇ ⁇ ⁇ ( ⁇ ⁇ ) ⁇ ⁇ ⁇
- Algorithm 2 shows an example of a decoding algorithm that runs BP with an SPN-based source model.
- the algorithm which may be referred to as “SPN source-code belief propagation,” can be implemented within and/or utilized by a decoder in a model- code separation system or architecture, such as system 700 of FIG.7. In some cases, Algorithm 2 may be implemented on a computing device such as that described below in the context of FIG. 12.
- Model-code separation systems and architectures with SPNs can provide various benefits. For example, a model-code separation architecture only requires the source sequence to have a bit-level representation in order to compress it. Moreover, by using an LDPC parity-check matrix, the code has low complexity and is agnostic of the source modality.
- the decoder since the encoder has no knowledge of the source, the decoder requires knowledge about the source to accurately decode the source sequence, of which there can be many for a given codeword.
- the source data model can be swapped out easily in the decoder, for example, when knowledge of the source changes.
- SPNs can learn powerful statistical structure from large datasets and can losslessly compress natural images, a task which proved tough for PGMs due to their simple structure.
- SPNs can learn powerful statistical structure from large datasets and can losslessly compress natural images, a task which proved tough for PGMs due to their simple structure.
- SPNs can learn powerful statistical structure from large datasets and can losslessly compress natural images, a task which proved tough for PGMs due to their simple structure.
- complex distributions can be represented using deep DAGs implemented efficiently through convolutions. Parameter learning is relatively easy with SPNs and hence the same SPN architecture can be used with different parameters to model a variety of complex distributions.
- the encoder, source graph, code graph and translator are all disjoint components. Hence, a change to one of these will not require significant changes to other components. This allows the code to be easily changed. For example, to use a code other than an LDPC code, only the parity-check matrix needs to be switched out in the encoder. The code graph can easily be updated to model different coding constraints by updating the factor nodes. [0170] As another benefit, SPNs can compute all marginals in parallel. Even though an SPN has an underlying DAG much larger than that of a typical PGM, inference is extremely fast and most importantly tractable.
- FIG. 11 shows an example of a process 1100 for decompressing data that may be used with model-code separation systems and architectures.
- process 1100 may be implemented within and/or executed by decoder 704 of FIG.7 in the form computer software or firmware.
- data that is compressed may be received.
- the data may be data encoding using a universal encoder (e.g., using an LDPC code).
- a data model representing statistical structure inherent in source data may also be received (i.e., source data corresponding to an uncompressed version of the data received at block 1102).
- the data model may be based on an SPN or, more particularly, based on a DGCSPN.
- a coding transform associated with the compressed data may also be received.
- the coding transform may be an LDPC parity-check matrix ⁇ .
- some or all of the information received at blocks 1102, 1104, and 1106 may be received by a decoder via a computer network or from computer storage.
- the compressed data and/or the coding transform may be generated by and received from an encoder (e.g., encoder 702 in FIG.7).
- the encoder may be a model-free encoder and, thus, the data model may be received from a separate source.
- a user or process other than the encoder may generate a mapping between input symbols and codewords that takes into account the relative frequency of the incoming symbols and provide this mapping to the decoder.
- the data can be decompressed using the data model and a code graph (e.g., a Tanner graph) representing the coding coefficients.
- the decompression can operate over a combined graph generated from the data model, the code graph, and a virtual controller having nodes representing symbols in a source sequence of the decompressed data.
- BP may be run on the combined graph to compute approximate marginals of the source sequence that satisfies constraints of both the SPN and the code graph.
- this can more particularly include passing, by the virtual controller, statistical information between the code graph and the SPN-based mode.
- the statistical information may be defined over a binary alphabet and, thus, the process can further include translating, by the virtual controller, the statistical information from the binary alphabet to an alphabet over which the compressed data is defined.
- Process 1100 can be used for lossless and/or lossy data decompression. Various other features and concepts disclosed herein can be incorporated into process 1100.
- FIG. 12 shows an illustrative computing device 1200 that may implement various features and processes as described.
- the computing device 1200 may be implemented on any electronic device that runs software applications derived from compiled instructions, including without limitation personal computers, servers, smart phones, media players, electronic tablets, game consoles, email devices, etc.
- the computing device 1200 may include one or more processors 1202, volatile memory 1204, non-volatile memory 1206, and one or more peripherals 1208.
- Processor(s) 1202 may use any known processor technology, including but not limited to graphics processors and multi-core processors. Suitable processors for the execution of a program of instructions may include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors or cores, of any kind of computer.
- Bus 1210 may be any known internal or external bus technology, including but not limited to ISA, EISA, PCI, PCI Express, NuBus, USB, Serial ATA or FireWire.
- Volatile memory 1204 may include, for example, SDRAM. Processor 1202 may receive instructions and data from a read-only memory or a random- access memory or both.
- Non-volatile memory 1206 may include by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks.
- Non-volatile memory 1206 may store various computer instructions including operating system instructions 1212, communication instructions 1214, application instructions 1216, and application data 1217.
- Operating system instructions 1212 may include instructions for implementing an operating system (e.g., Mac OS®, Windows®, or Linux). The operating system may be multi-user, multiprocessing, multitasking, multithreading, real-time, and the like.
- Communication instructions 1214 may include network communications instructions, for example, software for implementing communication protocols, such as TCP/IP, HTTP, Ethernet, telephony, etc.
- Peripherals 1208 may be included within the computing device 1200 or operatively coupled to communicate with the computing device 1200. Peripherals 1208 may include, for example, network interfaces 1218, input devices 1220, and storage devices 1222. Network interfaces may include for example an Ethernet or Wi-Fi adapter.
- Input devices 1220 may be any known input device technology, including but not limited to a keyboard (including a virtual keyboard), mouse, trackball, and touch-sensitive pad or display.
- Storage devices 1222 may include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks.
- the system can perform processing, at least in part, via a computer program product, (e.g., in a machine-readable storage device), for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers).
- data processing apparatus e.g., a programmable processor, a computer, or multiple computers.
- Each such program may be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, the programs may be implemented in assembly or machine language.
- the language may be a compiled or an interpreted language and it may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- a computer program may be stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer.
- Processing may also be implemented as a machine-readable storage medium, configured with a computer program, where upon execution, instructions in the computer program cause the computer to operate.
- the program logic may be run on a physical or virtual processor.
- the program logic may be run across one or more physical or virtual processors.
- the subject matter described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural means disclosed herein and structural equivalents thereof, or in combinations of them.
- the subject matter described herein can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine-readable storage device), or embodied in a propagated signal, for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers).
- a computer program (also known as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or another unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file.
- a program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network.
- a processor will receive instructions and data from a read-only memory or a random-access memory or both.
- the essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- Information carriers suitable for embodying computer program instructions and data include all forms of nonvolatile memory, including by ways of example semiconductor memory devices, such as EPROM, EEPROM, flash memory device, or magnetic disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/880,914 US20260017501A1 (en) | 2022-08-05 | 2023-06-05 | Model-code separation architecture for data compression using sum-product networks |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202263370576P | 2022-08-05 | 2022-08-05 | |
| US63/370,576 | 2022-08-05 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024030698A1 true WO2024030698A1 (en) | 2024-02-08 |
Family
ID=88863414
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2023/067911 Ceased WO2024030698A1 (en) | 2022-08-05 | 2023-06-05 | Model-code separation architecture for data compression using sum-product networks |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US20260017501A1 (en) |
| WO (1) | WO2024030698A1 (en) |
-
2023
- 2023-06-05 US US18/880,914 patent/US20260017501A1/en active Pending
- 2023-06-05 WO PCT/US2023/067911 patent/WO2024030698A1/en not_active Ceased
Non-Patent Citations (5)
| Title |
|---|
| CAIRE GIUSEPPE SHAMAI ET AL: "Universal data compression with LDPC codes", PROCEEDINGS OF TURBOCODING 2003, 3RD INTERNATIONAL SYMPOSIUM ON TURBO CODES AND RELATED TOPICS, vol. 1, 1173, 1 September 2003 (2003-09-01) - 5 September 2003 (2003-09-05), Brest, FR, pages 1 - 4, XP093113668, Retrieved from the Internet <URL:https://www.eurecom.fr/publication/1173> [retrieved on 20231219] * |
| LIU ANJI ET AL: "Lossless Compression with Probabilistic Circuits", ARXIV (CORNELL UNIVERSITY), 16 March 2022 (2022-03-16), Ithaca, pages 1 - 20, XP093113671, Retrieved from the Internet <URL:https://arxiv.org/pdf/2111.11632v2.pdf> [retrieved on 20231219], DOI: 10.48550/arxiv.2111.11632 * |
| TEJAS JAYASHANKAR: "Image Compression using Sum-Product Networks | Tejas Jayashankar", 28 February 2022 (2022-02-28), pages 1 - 2, XP093113216, Retrieved from the Internet <URL:https://tejasjayashankar.github.io/publication/2022-image-compression-using-spns.html> [retrieved on 20231218] * |
| VERGARI ANTONIO ET AL: "Sum-Product Autoencoding: Encoding and Decoding Representations Using Sum-Product Networks", PROCEEDINGS OF THE AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE, vol. 32, no. 1, 29 April 2018 (2018-04-29), pages 4163 - 4170, XP093112410, ISSN: 2159-5399, Retrieved from the Internet <URL:https://ojs.aaai.org/index.php/AAAI/article/view/11734/11593> DOI: 10.1609/aaai.v32i1.11734 * |
| WORNELL GREGORY W ET AL: "Image Compression using Sum-Product Networks", DSPACE@MIT, 26 January 2022 (2022-01-26), pages 1 - 94, XP093112401, Retrieved from the Internet <URL:https://dspace.mit.edu/bitstream/handle/1721.1/148612/Jayashankar-tejasj-SM-EECS-2022-thesis.pdf?sequence=1&isAllowed=y> [retrieved on 20231214] * |
Also Published As
| Publication number | Publication date |
|---|---|
| US20260017501A1 (en) | 2026-01-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20230068246A1 (en) | Database utilizing spatial probability models for data compression | |
| Voicila et al. | Low-complexity decoding for non-binary LDPC codes in high order fields | |
| US7649479B2 (en) | Data encoding and decoding using Slepian-Wolf coded nested quantization to achieve Wyner-Ziv coding | |
| Martinian et al. | Iterative quantization using codes on graphs | |
| US9543980B2 (en) | Systems and methods for model-free compression and model-based decompression | |
| CN117454994A (en) | Magic state purification with low space overhead and asymptotic input counting | |
| Valipour et al. | On probabilistic weight distribution of polar codes | |
| IL294187B2 (en) | Methods and systems for data compression | |
| Häger et al. | Density evolution for deterministic generalized product codes on the binary erasure channel at high rates | |
| Yang et al. | Nonlinear programming approaches to decoding low-density parity-check codes | |
| Wang et al. | Efficient compression of encrypted binary images using the Markov random field | |
| Townsend | Lossless compression with latent variable models | |
| CN1953336A (en) | Method for updating check node in low density parity check decoder | |
| Jiao et al. | Estimating the fundamental limits is easier than achieving the fundamental limits | |
| Dupraz et al. | Source coding with side information at the decoder and uncertain knowledge of the correlation | |
| US20260017501A1 (en) | Model-code separation architecture for data compression using sum-product networks | |
| JP5713986B2 (en) | Encoding apparatus, method, program, and recording medium | |
| EP3912324A1 (en) | System and method for decoding reed-muller codes | |
| Justesen et al. | Two-Dimensional Information Theory and Coding: With Applications to Graphics Data and High-Density Storage Media | |
| Jalali et al. | Minimum complexity pursuit | |
| Diouf et al. | Polar coding steganographic embedding using successive cancellation | |
| Yang et al. | Matrix embedding in steganography with binary Reed–Muller codes | |
| Kositwattanarerk et al. | Lifting the fundamental cone and enumerating the pseudocodewords of a parity-check code | |
| Jayashankar | Image Compression using Sum-Product Networks | |
| Huang | Model-code separation architectures for compression based on message-passing |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23809398 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 18880914 Country of ref document: US |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23809398 Country of ref document: EP Kind code of ref document: A1 |
|
| WWP | Wipo information: published in national office |
Ref document number: 18880914 Country of ref document: US |






