Code generation device, sequence generation device, and program
The encoding device uses joint probability distributions and chromatic vectors to reduce redundancy in variable distributions, enabling efficient lossless compression of digital signals and data.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- NT T INC
- Filing Date
- 2024-10-16
- Publication Date
- 2026-04-23
AI Technical Summary
Existing reversible compression and encoding techniques for finite-precision digital signals and data assume invariant distributions of observed values, limiting their effectiveness when distributions are variable.
An encoding device that converts input sequences into colored vectors using joint probability distributions, followed by independent encoding to reduce redundancy, and a decoding device that reconstructs original sequences based on chromatic vectors and dimensions, allowing for lossless compression even with variable distributions.
Enables efficient lossless compression by reducing redundancy between observed values, even when their distributions change, by utilizing joint probability distributions and chromatic vectors to identify sequences reliably.
Smart Images

Figure JP2024036800_23042026_PF_FP_ABST
Abstract
Description
Code generator, sequence generator, program
[0001] This invention relates to a technique for reversibly compressing and encoding finite-precision digital signals and digital data.
[0002] Currently, technologies are being developed to reversibly compress and encode finite-precision digital signals and digital data, such as audio signals, image signals, time-series signals obtained from various sensors including brightness sensors, acceleration sensors, and seismometers, as well as strings of characters and word sequences. One application of reversible compression and encoding is to consider a scenario where observation values are obtained and aggregated using many sensors placed within a certain range, such as in a sensor network. In this case, depending on the arrangement of the sensors and the objects being observed by each sensor, the observed values may be similar between neighboring sensors. In such cases, there is redundancy in the observed values between those sensors, so there is room for compression beyond simply eliminating redundancy in the observed values of each sensor individually. Compression is naturally possible when the observed values of all sensors are aggregated, but in that case, the observed values must be transmitted while redundancy remains in the observed values between sensors during aggregation.
[0003] The technology described in Non-Patent Document 1 enables compression that eliminates redundancy in observed values between sensors by performing independent encoding processing on each sensor without the sensors sending information about their observed values to each other. Although the encoding processing in Non-Patent Document 1 is independent, decoding cannot be performed using only the encoding result for one sensor; decoding is possible by aggregating the encoding results for all sensors. According to the technology in Non-Patent Document 1, for example, in cases where two sensors are close enough that the range of the observed value of one sensor can be determined from the observed value of the other, reversible compression can be performed with an entropy lower than that which would occur if the observed values between sensors were assumed to be independent. Because the technology in Non-Patent Document 1 can compress data through independent encoding processing for each observed value, there is no need to allocate wireless bandwidth to redundant observed values, allowing for efficient use of communication resources.
[0004] Q. Zhao and M. Effros, "Lossless and near-lossless source coding for multiple access networks," in IEEE Transactions on Information Theory, vol.49, issue 1, pp.112-128, 2003.
[0005] However, the technique of Non-Patent Document 1 has a problem in that it assumes that the distribution followed by the observed values is invariant.
[0006] Therefore, an object of the present invention is to provide an encoding / decoding technique that reduces redundancy between observed values by independent encoding processing even when the distribution of the observed values is variable.
[0007] One aspect of the present invention is an encoding device that obtains a code from a unit input sequence, which is a sequence of main observed values of a predetermined length, by setting the main observed value and the sub-observed value as integer values and integer values correlated with the main observed value, respectively. The encoding device includes a conversion unit that converts the unit input sequence into a colored vector using the joint probability distribution of the main observed value and the sub-observed value, a first encoding unit that obtains a first code by encoding the colored vector, and a second encoding unit that obtains a second code by encoding the dimension of the colored vector. The dimension of the colored vector is a sequence of integer values from which the same colored vector as the colored vector can be obtained by the conversion of the conversion unit, and is a sequence of integer values that can appear together with the same sequence of sub-observed values as the sequence of sub-observed values for the unit input sequence in the joint probability distribution. Among the sequences of integer values determined for each candidate dimension that satisfy the condition that the likelihood is the highest in the marginal probability distribution regarding the main observed value obtained from the joint probability distribution, it is equal to the dimension corresponding to the one that matches the unit input sequence.
[0008] One aspect of the present invention is a sequence generation device that obtains a unit output sequence, which is a sequence of main observed values of a predetermined length, from a code, where the main observed value and the sub-observed value are integer values and an integer value correlated with the main observed value, respectively, and includes a first decoding unit that obtains a chromatic vector by decoding a first code, a second decoding unit that obtains the dimension of the chromatic vector by decoding a second code, and a conversion unit that converts the chromatic vector into the unit output sequence using the joint probability distribution of the main observed value and the sub-observed value and the dimension of the chromatic vector, wherein the unit output sequence is a sequence of integer values that, when converted into a chromatic vector of the same dimension as the chromatic vector, yields the same chromatic vector as the chromatic vector, and is a sequence of integer values that satisfies the condition that it has the highest likelihood in the marginal probability distribution relating to the main observed value obtained from the joint probability distribution, among those that can appear together with the sequence of sub-observed values obtained by decoding information that can decode the sequence of sub-observed values in the joint probability distribution.
[0009] According to the present invention, even if the distribution of observed values is variable, it is possible to perform lossless compression that reduces redundancy between observed values by independent encoding processing.
[0010] This figure shows an example of the joint probability distribution of the primary and secondary observed values. This figure shows the marginal probability distribution related to the primary observed value obtained from the joint probability distribution of Figure 1. This is a block diagram showing the configuration of the encoding device 100. This is a flowchart showing the operation of the encoding device 100. This is a block diagram showing the configuration of the encoding unit 110. This is a flowchart showing the operation of the encoding unit 110. This is a flowchart showing the operation of the code generation unit 112. This is a block diagram showing the configuration of the decoding device 200. This is a flowchart showing the operation of the decoding device 200. This is a block diagram showing the configuration of the decoding unit 210. This is a flowchart showing the operation of the decoding unit 210. This is a flowchart showing the operation of the sequence generation unit 212. This figure shows an example of the functional configuration of a computer that realizes each device in the embodiment of the present invention.
[0011] The embodiments of the present invention will be described in detail below. Components having the same function will be numbered identically, and redundant explanations will be omitted.
[0012] <Technical Background> <<1: Encoding Device>> First, the encoding device in the first embodiment will be described. A sequence of digital signals or digital data is input to the encoding device. The input digital signals or digital data sequences are assumed to be finite-precision numerical values obtained by quantization or other means. The following sequences can be given as examples of input digital signals or digital data sequences.
[0013] (1) Time-series signals obtained from audio signals, image signals, and various sensors such as brightness sensors, acceleration sensors, and seismometers. (2) A series of spectral values obtained by performing discrete Fourier transforms, discrete cosine transforms, and modified discrete cosine transforms on the signals in (1). (3) A series of linear prediction coefficients, line spectral pairs (LSPs), immitance spectral pairs (ISPs), and partial autocorrelation coefficients (PARCOR coefficients) obtained by performing linear predictive analysis on the signals in (1). (4) A series of features obtained by inputting the signals in (1) into a neural network. Furthermore, the input digital signals and digital data series may also be text composed of letters or words such as a, b, c.
[0014] Hereinafter, a sequence of digital signals or digital data input will be referred to as a sequence of integer values. The integer value input to the encoding device will be called the primary observation value. As in the sensor network example mentioned earlier, an observation value that is close to the primary observation value will be called a secondary observation value. The secondary observation value is assumed to be correlated with the primary observation value. Furthermore, the joint probability distribution that the primary and secondary observation values follow is assumed to be predetermined or a candidate distribution is given. Figure 1 shows an example of the joint probability distribution of primary and secondary observation values. When x is the primary observation value and y is the secondary observation value, the joint probability distribution of the primary and secondary observation values will have the property that the range of the primary observation value can be limited by obtaining the secondary observation value, as shown in Figure 1. Note that the encoding device receives the primary observation value as input, but not the secondary observation value. In other words, the encoding device cannot directly use what the actual value of the secondary observation value is. On the other hand, the decoding device will receive information about the secondary observation value along with information for reconstructing the sequence of primary observation values. Any method may be used as long as the information about the secondary observation value is transmitted to the decoding device without error.
[0015] Furthermore, the input integer value must take one of Q possible values. It is desirable that the set of input integer values be a finite field.
[0016] The encoding device takes a sequence of primary observations (hereinafter referred to as the input sequence) as input and performs the following processes (1) to (4) on a sequence of primary observations of a predetermined length (hereinafter referred to as the frame length) (hereinafter referred to as the unit input sequence) to obtain two codes, and outputs a sequence obtained from all the obtained codes (hereinafter referred to as the output sequence). In doing so, the encoding device uses the joint probability distribution of the primary and secondary observations.
[0017] (1) Use a joint probability distribution to select the dimension of the chromatic vector (where the chromatic vector is a vector whose elements are integer values) that transforms the unit input sequence.
[0018] (2) Convert the unit input sequence into a color vector of the dimension selected in (1).
[0019] (3) Output the code corresponding to the color vector obtained in the transformation in (2).
[0020] (4) Output the sign corresponding to the dimension selected in (1).
[0021] The processes described in (3) and (4) above can be carried out using existing methods such as Huffman coding or arithmetic coding. In this case, the distribution of the main observations may be predetermined, or it may be estimated for each main observation using existing statistical analysis. When estimating the distribution of the main observations, the coding device shall output a code representing the parameters necessary to reproduce the said distribution and share it with the decoding device.
[0022] The following describes the processes described in (1) and (2) above. The encoding device shall pre-store several values that are candidates for the dimension of the chromatic vector to be selected in (1). One of the candidates shall be the frame length value. For example, the candidate dimensions of the chromatic vector can be determined by the following procedure.
[0023] (1) From the joint probability distribution of the primary and secondary observations, obtain the conditional entropy value for the secondary observation with respect to the primary observation Q as the base of the logarithm.
[0024] (2) Determine candidate dimensions for the chromatic vector at equal intervals from the interval between the conditional entropy value obtained in (1) and the frame length value. Note that the intervals can be arbitrary, and if the values selected at equal intervals are not integers, they can be rounded.
[0025] Furthermore, the encoding device shall also pre-store transformations for obtaining a chromatic vector of a given dimension for each candidate dimension of the chromatic vector. The transformation for obtaining a chromatic vector is, for example, a c x N matrix obtained by multiplying a column vector whose elements are N principal observations by the frame length and c is the dimension of the chromatic vector, in order to obtain a c-dimensional chromatic vector. It is preferable that the matrix is sparse with few non-zero elements and that the values of its elements are random. The transformation for obtaining a chromatic vector is not limited to the above matrix; any transformation that does not easily cause bias in the obtained chromatic vector may be used. For example, a hash function that depends on several elements included in the unit input sequence can be used. In this case, c hash functions are used to obtain a c-dimensional chromatic vector from N principal observations. From the standpoint of computational complexity, it is preferable that the output value of the hash function depends on a number of elements that is at most logarithmic to the frame length N.
[0026] In the process described in (1) above, the dimension of the chromatic vector is selected from a series of integer values that satisfy the following two constraints (α) and (β) (hereinafter referred to as a weak confusion sequence), and among these sequences of integer values, the one with the highest likelihood in the marginal distribution relating to the principal observation obtained from the joint probability distribution (hereinafter referred to as a candidate decoding sequence) is selected, and the dimension that matches the unit input sequence is selected.
[0027] The chromatic vector of the (α) dimension obtained by transforming the unit input sequence by the transformation in (2) matches the chromatic vector of the (α) dimension obtained by transforming the weakly confused sequence by the transformation in (2).
[0028] (β) In the joint probability distribution of the primary and secondary observations, the unit input sequence and the weakly confused sequence may appear together with the sequence of the same secondary observation.
[0029] The selection of the dimension of the chromatic vector in the process described in (1) above can also be explained as follows. As mentioned above, there is a transformation in (2) for each candidate dimension. Then, for each candidate dimension, a set of weakly confused sequences is determined, and further, a candidate decoding sequence is determined for the set of weakly confused sequences. In other words, a candidate decoding sequence is determined for each candidate dimension. Therefore, the selection of the dimension of the chromatic vector in the process described in (1) above can be said to be the selection of a dimension that corresponds to a candidate decoding sequence that matches the unit input sequence among the candidate decoding sequences determined for each candidate dimension.
[0030] The constraint (β) depends on the assumed distribution as the joint probability distribution of the primary and secondary observations. For example, in the joint probability distribution of Figure 1, if the frame length is 1, then when the unit input sequence is x=2, the secondary observation sequence can be any of y=1, y=2, or y=3. Similarly, when the unit input sequence is any of x=1, x=3, or x=4, the secondary observation sequence can also be any of y=1, y=2, or y=3. In other words, for a unit input sequence x=2, the sequences that satisfy constraint (β) are the sequences x=1, x=2, x=3, x=4, which can appear together with the same secondary observation sequence (any of y=1, y=2, or y=3).
[0031] Furthermore, existing methods can be used to calculate the likelihood. For example, the sum-product algorithm can be used when the distributions of the principal observations included in the unit input sequence are independent. The selection of the dimension of the chromatic vector in process (1) may be done by trying all candidates or by binary search. Preferably, the dimension selected in process (1) is the smallest dimension among the dimensions of the chromatic vector obtained by the transformation in (2) to a sequence of integer values that satisfies the above conditions. Note that the above conditions are always satisfied when the dimension of the chromatic vector is equal to the frame length. Also, if convergence takes a long time when an iterative algorithm is used to calculate the likelihood, the calculation may be terminated after a predetermined number of processes and the calculation may be moved on to candidates of a larger dimension. In this case, it is not guaranteed that the smallest dimension among the dimensions of the chromatic vector obtained by the transformation in (2) to a sequence of integer values that satisfies the above conditions will be selected, but the worst value of the computational complexity can be controlled by terminating the iterative algorithm.
[0032] <<2: Decoding Procedure>> Next, the decoding device in the first embodiment will be described. The decoding device receives at least a sequence of codes corresponding to a chromatic vector and a sequence of codes corresponding to the dimension of the chromatic vector (hereinafter referred to as the input sequence) and information that can decode a sequence of sub-observed values (hereinafter referred to as sub-observed value information). Specifically, the decoding device takes the input sequence and sub-observed value information as input, decodes the sub-observed value information to obtain a sequence of sub-observed values, and then performs the following processes (1) to (3) on a set of codes corresponding to a chromatic vector and a code corresponding to the dimension of the chromatic vector to obtain a sequence of main observed values of frame length (hereinafter referred to as the unit output sequence), and outputs a sequence obtained from all the obtained unit output sequences (hereinafter referred to as the output sequence). At that time, the decoding device uses the joint probability distribution of the main observed values and sub-observed values used in the encoding device.
[0033] (1) Decode the code corresponding to the color vector.
[0034] (2) Decode the sign corresponding to the dimension of the color vector.
[0035] (3) Using the joint probability distribution and the dimension of the chromatic vector obtained in (2), convert the chromatic vector obtained in (1) into a unit output sequence.
[0036] The processes described in (1) and (2) above can be carried out using existing methods. However, these methods must correspond to the encoding method used by the encoding device.
[0037] The unit output sequence obtained in the process described in (3) above is a sequence of integer values that satisfies the following two constraints (α) and (β) (hereinafter referred to as a strongly confused sequence), and is the sequence of integer values that has the highest likelihood in the marginal distribution with respect to the principal observed value obtained from the joint probability distribution.
[0038] (α) When the strongly confused sequence is transformed into a chromatic vector of the dimension obtained in (1), it matches the chromatic vector obtained in (2).
[0039] (β) In the joint probability distribution of the primary and secondary observations, strongly confused sequences may appear together with the sequence of secondary observations obtained by decoding the secondary observation information.
[0040] <<3: Principle of the Invention>> This section explains the principle of the invention. In this invention, it is assumed that there is a correlation between the primary and secondary observed values, that there exists a pair of primary and secondary observed values in the joint probability distribution of the primary and secondary observed values for which the probability is 0, and that the range of possible primary observed values can be limited to some extent when secondary observed values are obtained. Therefore, the decoding device in the first embodiment can limit to some extent the range of primary observed value sequences to be decoded simply by obtaining a sequence of secondary observed values. For this reason, it is not necessary to encode the unit input sequence in a way that distinguishes it from all possible input sequences of primary observed values; decoding can be performed reliably if it is only distinguishable among sequences of primary observed values that may appear together with the sequence of secondary observed values.
[0041] However, the encoding device in the first embodiment assumes that it does not know what the actual values of the secondary observations are. Therefore, the encoding device needs to analyze the range in which it should be able to identify based only on the information available to the encoding device, that is, only the unit input sequence. To do this, the encoding device analyzes the range in which it should be able to identify by listing the sequences of secondary observations that may appear with the unit input sequence, and listing the sequences of primary observations that may appear with the listed sequences of secondary observations. For example, consider the case where the frame length is 2, and the pair of primary and secondary observations (x1, y1) for the first sample and the pair of primary and secondary observations (x2, y2) for the second sample follow the joint probability distribution shown in Figure 1. If the unit input sequence is (x1, x2) = (1, 5), then the sequences of secondary observations that may appear with the unit input sequence are (y1, y2) = (1, 4), (1, 5), (2, 4), (2, 5). The sequences of primary observations that can appear with the sequence of four secondary observations are (1, 3), (1, 4), (1, 5), (2, 3), (2, 4), (2, 5), (3, 3), (3, 4), and (3, 5). Therefore, if enough information is transmitted to the decoding device to determine that the unit input sequence is (1, 5) among at least the nine sequences of primary observations, the unit input sequence can be correctly decoded.
[0042] Furthermore, by using likelihood, the range that should be distinguishable can be further narrowed. If the decoding device outputs the sequence with the highest likelihood among the narrowed-down candidates as the decoded result, then sequences with low likelihood do not need to be distinguished. The marginal probability distribution for the principal observations obtained from the joint probability distribution in Figure 1 is as shown in Figure 2, and the likelihood of the unit input sequence (1, 5) is 0.2 × 0.2 = 0.04. Among the nine sequences of principal observations above, those with a likelihood of 0.04 or higher are (1, 4), (1, 5), (2, 4), and (2, 5). In other words, if information that allows the unit input sequence to be distinguished from these four sequences of principal observations is provided to the decoding device, it can be correctly decoded by calculating the likelihood.
[0043] Generally, increasing the frame length improves the efficiency of narrowing down the range and increases compression efficiency. However, as the frame length increases, the number of candidate sequences of main observed values included in the range increases exponentially, leading to an excessive increase in the computational load required for the analysis described above. Furthermore, if the distribution differs for each observed value, i.e., if the distribution of observed values is variable, it becomes difficult to store information about the distribution in advance. Therefore, in this invention, a predetermined random matrix is used to obtain a chromatic vector, which is the information necessary for identification, from the unit input sequence. Here, a random matrix is a matrix designed so that its elements have random properties. The chromatic vector obtained by multiplying the random matrix by the vector corresponding to the unit input sequence will be an approximately random value. In the example above, as long as the chromatic vector obtained from the unit input sequence (1, 5) is different from the chromatic vectors obtained from each of the three main observed value sequences (1, 4), (2, 4), and (2, 5), it is possible to identify the unit input sequence (1, 5) by transmitting the chromatic vector to the decoding device, and it can be correctly decoded. If the dimensionality of the chromatic vector is not too small, the probability of correctly decoding unit input sequences with sufficiently large frame lengths increases. If decoding is not possible (in the example above, if the chromatic vector obtained for at least one of the main observation sequences (1, 4), (2, 4), and (2, 5) is the same as the chromatic vector obtained from the unit input sequence (1, 5)), the condition under which decoding is always possible can be found by increasing the dimensionality of the chromatic vector. By obtaining the chromatic vector from the unit input sequence using a transformation with random properties as described above, it becomes possible to obtain information to identify the unit input sequence with a realistic amount of processing power, even if the distribution of observations is variable. Furthermore, by representing the unit input sequence with a chromatic vector, it becomes possible to perform more efficient compression than compressing the unit input sequence alone, without obtaining secondary observations.
[0044] <First Embodiment> The encoding device 100 in this embodiment takes as input a series of subjective observation values (hereinafter referred to as an input series) and outputs a series of codes (hereinafter referred to as an output series) corresponding to the input series. Also, the decoding device 200 in this embodiment takes as input a series of codes (hereinafter referred to as an input series) and information capable of decoding a series of sub-observation values (hereinafter referred to as sub-observation value information), and outputs a series of subjective observation values (hereinafter referred to as an output series) corresponding to the input series. Here, it is assumed that the subjective observation values and the sub-observation values are integer values and integer values correlated with the subjective observation values, respectively.
[0045] <<Encoding Device 100>> Hereinafter, the encoding device 100 will be described with reference to FIGS. 3 to 4. FIG. 3 is a block diagram showing the configuration of the encoding device 100. FIG. 4 is a flowchart showing the operation of the encoding device 100. As shown in FIG. 3, the encoding device 100 includes an encoding unit 110 and a recording unit 190. The recording unit 190 is a component that appropriately records information necessary for the processing of the encoding device 100. The recording unit 190 records, for example, the joint probability distribution of the subjective observation values and the sub-observation values.
[0046] The operation of the encoding device 100 will be described according to FIG. 4.
[0047] In S110, the encoding unit 110 takes the input series as input, obtains two codes for each series of subjective observation values of a predetermined length (hereinafter referred to as the frame length) (hereinafter referred to as a unit input series), and outputs the series obtained from all the obtained codes as the output series.
[0048] Hereinafter, the encoding unit 110 will be described with reference to FIGS. 5 to 7. FIG. 5 is a block diagram showing the configuration of the encoding unit 110. FIG. 6 is a flowchart showing the operation of the encoding unit 110. FIG. 7 is a flowchart showing the operation of the code generation unit 112. As shown in FIG. 5, the encoding unit 110 includes a control unit 111 and a code generation unit 112. Further, the code generation unit 112 includes a conversion unit 1121, a first encoding unit 1122, and a second encoding unit 1123.
[0049] Hereinafter, referring to FIG. 6, the operation of the encoding unit 110 will be described.
[0050] In S111, the control unit 111 takes the input sequence as input and executes a control process consisting of the following three processes.
[0051] (1) Processing to make the input sequence the current sequence to be encoded (2) Processing to extract the unit input sequence from the beginning of the current sequence to be encoded, output the unit input sequence to the code generation unit 112, and make the sequence of main observed values obtained by removing the sequence that matches the unit input sequence from the current sequence to be encoded the current sequence to be encoded (3) If the length of the current sequence to be encoded obtained by processing in (2) is less than the frame length, the code generation unit 112 outputs a sequence containing all of the first and second codes output as the output sequence and terminates the control processing, while otherwise returning to processing in (2) In S112, the code generation unit 112 takes the unit input sequence output in S111 as input, uses the joint probability distribution of the main observed value and the sub-observed value to obtain the first and second codes corresponding to the unit input sequence, and outputs the first and second codes to the control unit 111.
[0052] The operation of the code generation unit 112 will be explained below with reference to Figure 7.
[0053] In S1121, the conversion unit 1121 takes the unit input sequence output in S111 as input, converts the unit input sequence into a color vector using the joint probability distribution of the main observation and the sub-observation, and outputs the color vector to the first coding unit 1122 and the dimension of the color vector to the second coding unit 1123. Specifically, the conversion unit 1121 takes the unit input sequence output in S111 as input, selects the dimension of the color vector to which the unit input sequence will be converted using the joint probability distribution of the main observation and the sub-observation, converts the unit input sequence into a color vector using the conversion corresponding to that dimension, and outputs the color vector to the first coding unit 1122 and the dimension of the color vector to the second coding unit 1123. For example, the conversion unit 1121 executes the processes of (1) and (2) in <<1: Encoding Device>> in <Technical Background>.
[0054] In S1122, the first encoding unit 1122 takes the chromatic vector output in S1121 as input, encodes the chromatic vector to obtain a first code, and outputs the first code to the control unit 111. The first encoding unit 1122 performs, for example, the process in (3) of <<1: Encoding device>> in <Technical background>.
[0055] In S1123, the second encoding unit 1123 takes the dimension of the chromatic vector output in S1121 as input, encodes the dimension of the chromatic vector to obtain a second code, and outputs the second code to the control unit 111. The second encoding unit 1123 performs, for example, the process in (4) of <<1: Encoding Device>> in <Technical Background>.
[0056] Here, the dimension of the color vector is equal to the dimension that satisfies the following conditions.
[0057] (Condition) This is a sequence of integer values determined for each candidate dimension that, through the transformation of the transformation unit 1121, yields the same chromatic vector as the one obtained in S1121, and which can appear in the joint probability distribution together with the same sequence of sub-observed values as the sequence of sub-observed values for the unit input sequence, and which has the highest likelihood in the marginal probability distribution relating to the main observed value obtained from the joint probability distribution, and which corresponds to the dimension that matches the unit input sequence.
[0058] The code generation unit 112, which is a component included in the encoding device 100, can also be configured as an independent device. In this case, a device having the same functions as the code generation unit 112 is referred to as the code generation device 112.
[0059] <<Decoding Device 200>> The decoding device 200 will be described below with reference to Figures 8 and 9. Figure 8 is a block diagram showing the configuration of the decoding device 200. Figure 9 is a flowchart showing the operation of the decoding device 200. As shown in Figure 8, the decoding device 200 includes a decoding unit 210 and a recording unit 290. The recording unit 290 is a component that appropriately records information necessary for the processing of the decoding device 200. The recording unit 290 records, for example, the joint probability distribution of the primary observed value and the secondary observed value (however, the joint probability distribution is the same distribution as the one used by the encoding device 100 in the encoding process).
[0060] The operation of the decoding device 200 will be explained in accordance with Figure 9.
[0061] In S210, the decoding unit 210 takes the input sequence and sub-observed value information as input, obtains a sequence of main observed values of frame length for each pair of first and second codes (hereinafter referred to as a unit output sequence), and outputs the sequence obtained from all the obtained unit output sequences as an output sequence.
[0062] The decoding unit 210 will now be described with reference to Figures 10 to 12. Figure 10 is a block diagram showing the configuration of the decoding unit 210. Figure 11 is a flowchart showing the operation of the decoding unit 210. Figure 12 is a flowchart showing the operation of the sequence generation unit 212. As shown in Figure 10, the decoding unit 210 includes a control unit 211 and a sequence generation unit 212. Furthermore, the sequence generation unit 212 includes a first decoding unit 2121, a second decoding unit 2122, and a conversion unit 2123.
[0063] The operation of the decoding unit 210 will be explained below with reference to Figure 11.
[0064] In S211, the control unit 211 takes the input sequence and sub-observed value information as input and executes a control process consisting of the following four processes.
[0065] (1) A process to decode a sequence of sub-observed values from the sub-observed value information and output it to the sequence generation unit 212. (2) A process to set the input sequence as the current sequence to be decoded. (3) A process to extract a pair of first and second codes from the beginning of the current sequence to be decoded, output the pair of first and second codes to the sequence generation unit 212, and set the sequence of codes obtained by removing the codes that match the pair of first and second codes from the current sequence to be decoded as the current sequence to be decoded. (4) If the length of the current sequence to be decoded obtained by the process in (3) is 0, the sequence generation unit 212 outputs a sequence of main observed values that includes all of the unit output sequences as the output sequence and terminates the control process; otherwise, the process returns to the process in (3). In S212, the sequence generation unit 212 takes the sequence of secondary observed values output in S211 and a pair of first and second codes as input, and uses the joint probability distribution of the main observed value and secondary observed value to obtain a unit output sequence corresponding to the pair of first and second codes, and outputs the unit output sequence to the control unit 211.
[0066] The operation of the sequence generation unit 212 will be explained below with reference to Figure 12.
[0067] In S2121, the first decoding unit 2121 takes the first code output in S211 as input, decodes the first code to obtain a color vector, and outputs the color vector to the conversion unit 2123. The first decoding unit 2121 performs, for example, the process in (1) of <<2: Decoding Device>> in <Technical Background>.
[0068] In S2122, the second decoding unit 2122 takes the second code output in S211 as input, decodes the second code to obtain the dimension of the chromatic vector obtained in S2121, and outputs the dimension of the chromatic vector to the conversion unit 2123. The second decoding unit 2122 performs, for example, the process in (2) of <<2: Decoding Device>> in <Technical Background>.
[0069] In S2123, the conversion unit 2123 takes the chromatic vector output in S2121, the dimension of the chromatic vector output in S2122, and the sequence of secondary observations output in S211 as input, and uses the joint probability distribution of the primary and secondary observations and the dimension of the chromatic vector to convert the chromatic vector into a unit output sequence, and outputs the unit output sequence to the control unit 211. The conversion unit 2123 performs, for example, the process in (3) of <<2: Decoder>> in <Technical Background>.
[0070] Here, the unit output sequence is a sequence of integer values that satisfies the following conditions.
[0071] (Condition) A sequence of integer values which, when transformed into a chromatic vector of the same dimension as the chromatic vector obtained in S2122, yields the same chromatic vector as the chromatic vector obtained in S2121, and which can appear together with the sequence of secondary observations obtained in S211 in the joint probability distribution, and which has the highest likelihood in the marginal probability distribution with respect to the primary observations obtained from the joint probability distribution.
[0072] The sequence generation unit 212, which is a component of the decoding device 200, can also be configured as an independent device. In this case, a device having the same functions as the sequence generation unit 212 is called a sequence generation device 212.
[0073] According to embodiments of the present invention, even if the distribution of observed values is variable, lossless compression can be performed by independent encoding processing to reduce redundancy between observed values.
[0074] <Note> The functions realized by the components described herein may be implemented in circuitry or processing circuitry, including general-purpose processors, application-specific processors, integrated circuits, ASICs (Application Specific Integrated Circuits), CPUs (Central Processing Units), conventional circuits, and / or combinations thereof, programmed to realize the functions described herein. A processor is considered to be circuitry or processing circuitry, including transistors and other circuits. A processor may be a programmed processor that executes a program stored in memory.
[0075] In this specification, circuitry, unit, and means are hardware programmed to perform or execute the functions described herein. Such hardware may be any hardware disclosed herein, or any hardware known to be programmed to perform or execute the functions described herein.
[0076] If the hardware is a processor that is considered to be a type of circuitry, then the circuitry, means, or unit is a combination of hardware and software used to constitute the hardware and / or processor.
[0077] The various processes described above can be carried out by loading a program that executes each step of the above method into the recording unit 2020 of the computer 2000 shown in Figure 13, and then causing the control unit 2010, input unit 2030, output unit 2040, display unit 2050, etc. to operate.
[0078] The program describing this process can be recorded on a computer-readable recording medium. Any computer-readable recording medium can be used, such as a magnetic recording device, optical disc, magneto-optical recording medium, or semiconductor memory.
[0079] Furthermore, this program may be distributed, for example, by selling, transferring, or lending portable recording media such as DVDs or CD-ROMs on which the program is recorded. Alternatively, the program may be stored in the storage device of a server computer and distributed by transferring the program from the server computer to other computers via a network.
[0080] A computer executing such a program may, for example, first store the program, either recorded on a portable storage medium or transferred from a server computer, in its own memory. Then, when processing is to be executed, the computer reads the program stored in its memory and executes the processing according to the read program. Alternatively, the computer may directly read the program from the portable storage medium and execute the processing according to that program, or it may sequentially execute the processing according to the received program each time a program is transferred to it from a server computer. Furthermore, the processing may be executed using a so-called ASP (Application Service Provider) type service, where the processing function is realized only by issuing execution instructions and obtaining results, without transferring the program from the server computer to this computer.In addition, the processing may be executed using a so-called SaaS (Software as a Service) type service, where a part of the server computer is made available to the user along with the program. Furthermore, the term "program" in this form includes information used for processing by an electronic computer that is equivalent to a program (data, etc., that is not a direct instruction to the computer but has the property of defining the processing of the computer).
[0081] Furthermore, in this configuration, the device is configured by executing a predetermined program on a computer, but at least a part of these processes may be implemented in hardware.
[0082] The present invention is not limited to the embodiments described above, and can be modified as appropriate without departing from the spirit of the invention. Furthermore, the processes described in the above embodiments are not limited to being executed in chronological order according to the order described, but may also be executed in parallel or individually as needed, depending on the processing capacity of the device performing the process.
Claims
1. A code generation device that obtains a code from a unit input sequence which is a sequence of main observations of a predetermined length, where the main observation and sub-observation values are integer values and the sub-observation values are integer values correlated with the main observation, the code generation device comprising: a conversion unit that converts the unit input sequence into a color vector using the joint probability distribution of the main observation and sub-observation values; a first encoding unit that obtains a first code by encoding the color vector; and a second encoding unit that obtains a second code by encoding the dimension of the color vector, wherein the dimension of the color vector is equal to the dimension corresponding to the unit input sequence among a sequence of integer values determined for each candidate dimension, which is a sequence of integer values from which the same color vector as the color vector can be obtained by the conversion unit, and which can appear in the joint probability distribution together with the same sequence of sub-observation values as the sequence of sub-observation values for the unit input sequence, and which has the highest likelihood in the marginal probability distribution relating to the main observation obtained from the joint probability distribution.
2. A sequence generation device that obtains a unit output sequence, which is a sequence of primary observed values of a predetermined length, from a code, wherein the primary observed value and secondary observed value are integer values and the secondary observed value is an integer value correlated with the primary observed value, respectively, and the sequence generation device includes: a first decoding unit that obtains a chromatic vector by decoding a first code; a second decoding unit that obtains the dimension of the chromatic vector by decoding a second code; and a conversion unit that converts the chromatic vector into the unit output sequence using the joint probability distribution of the primary observed value and secondary observed value and the dimension of the chromatic vector, wherein the unit output sequence is a sequence of integer values that, when converted into a chromatic vector of the same dimension as the chromatic vector, yields the same chromatic vector as the chromatic vector, and is a sequence of integer values that satisfies the condition that it has the highest likelihood in the marginal probability distribution relating to the primary observed value obtained from the joint probability distribution, among those that can appear together with the sequence of secondary observed values obtained by decoding information that can decode the sequence of secondary observed values in the joint probability distribution.
3. A program for causing a computer to function as either the code generation device described in claim 1 or the sequence generation device described in claim 2.
Citation Information
Patent Citations
Bit rate reduction apparatus and method thereof, image encoder and method thereof, image decoder and method thereof, image encoding program and recording medium with the encoding program recorded thereon, and image decoding program and recording medium with the decoding program recorded thereon
JP2003224851A
Data compression device, data reproduction device, data compression method, data reproduction method and data transfer method
JP2018061091A