Encoding device and decoding device

By estimating quantization intervals and predicting probability distributions using machine learning, the encoding and decoding devices manage quantization interval information efficiently, reducing data size and maintaining image quality.

JP7838598B2Active Publication Date: 2026-04-01NEC CORP
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2024-07-09
Publication Date
2026-04-01

AI Technical Summary

Technical Problem

The variation in quantization intervals between regions within an image frame leads to an increase in the amount of quantization interval information, potentially exceeding transmission capacity and causing transmission delays or a decrease in image quality.

Method used

The encoding device estimates a quantization interval and predicts a probability distribution of quantized values using machine learning models like neural networks, allowing entropy encoding without explicit quantization interval information, while the decoding device performs entropy decoding to reconstruct the quantized values.

Benefits of technology

This approach reduces the need for transmitting quantization interval information, preventing an increase in data size and maintaining image quality by estimating the quantization interval during the decoding process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007838598000001
    Figure 0007838598000001
  • Figure 0007838598000002
    Figure 0007838598000002
  • Figure 0007838598000003
    Figure 0007838598000003
Patent Text Reader

Abstract

To avoid an increase in information volume due to the provision of quantization interval information.SOLUTION: The present embodiment executes a process of acquiring a quantization interval for quantizing a value to be processed, a process of acquiring a predicted value on the basis of a quantization value for the processed value, a process of acquiring a quantization value of the value to be processed on the basis of the quantization interval, and a process of entropy-coding a quantized sequence based on the predicted value and the quantization value of the value to be processed. This embodiment can be realized by any form such as an encoding device or a decoding device.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an encoding device and a decoding device. [Background technology]

[0002] Patent Document 1 describes an image compression device and a corresponding compression / decompression device, which allow the user of an image to specify a region of interest in the image, set a different quantization rate for that region than for other regions, and control compression based on the set quantization rate. The compression / decompression device includes an image division means for dividing an image into multiple regions, a quantization rate setting means for specifying one or more regions of interest in the image, and a compression control means for controlling compression for each region based on the set quantization rate. When the image is divided into multiple regions by the image division means, a region of interest in the image is specified by the region specification means, and a quantization rate is set for each divided region by the quantization rate setting means, a different quantization rate is set for the specified region of interest than for other regions, and compression control is performed for each region based on the set quantization rate. In other words, the image compression device transmits the quantization rate determined for each region to the compression / decompression device along with the code obtained by compressing the image with that quantization rate. The quantization rate is indicated using the quantization interval. The QP value may be used as an index value for the quantization interval. [Prior art documents] [Patent Documents]

[0003] [Patent Document 1] Japanese Patent Publication No. 2003-339047 [Overview of the project] [Problems that the invention aims to solve]

[0004] However, the greater the variation in quantization intervals between regions within a single image frame, the greater the amount of quantization interval information transmitted along with the code obtained through compression. When the variation in quantization intervals between regions is significant, the amount of quantization interval information can reach a level that affects the total data size of the image. For example, the more detailed the setting of the fixation region, the greater the variation in quantization intervals tends to be. As a result, the total data size may exceed the transmission capacity, or transmission delays may occur. Ultimately, this can lead to a decrease in the quality of the decompressed image. Similar phenomena can occur not only with images, but also with the transmission of other types of information, such as waves like audio and electrical signal waveforms.

[0005] One objective of this invention is to provide an encoding device and a decoding device that solve the above-mentioned problems. [Means for solving the problem]

[0006] According to a first aspect of the present invention, the encoding device performs the following processes: obtaining a quantization interval for quantizing a value to be processed; obtaining a predicted value based on the quantized value of a processed value; obtaining the quantized value of the value to be processed based on the quantization interval; and entropy encoding a quantized sequence based on the predicted value and the quantized value of the value to be processed; and based on the quantized value of the element value obtained by quantizing the element value of the processed value, the encoding device performs the following processes: Become The predicted value of the quantization interval for the element value of the value is predicted as a predicted value based on the quantized value.

[0007] According to a second aspect of the present invention, the decoding device performs the following processes: obtaining a quantization interval for determining a quantized value by dequantizing the quantized value code to be processed based on the processed quantized value; obtaining a predicted value based on the processed quantized value; entropy decoding the coded sequence using the predicted value to obtain a quantized value sequence including the quantized value code; and dequantizing the quantized value code included in the quantized value sequence to obtain the quantized value; and based on the element values ​​of the processed quantized value, To be processedThe predicted value of the quantization interval for an element value is predicted as a predicted value based on the quantized value. [Effects of the Invention]

[0008] According to the present invention, in decoding an encoded sequence obtained by encoding, the quantization interval can be estimated even if information about the quantization interval is not provided. Therefore, it is possible to avoid an increase in the amount of information due to the provision of information about the quantization interval. [Brief explanation of the drawing]

[0009] [Figure 1] This is a schematic block diagram showing an example configuration of a data processing system according to the first embodiment. [Figure 2] This is a schematic block diagram showing an example of the hardware configuration of the encoding device according to the first embodiment. [Figure 3] This is an explanatory diagram showing an example of a machine learning model according to the first embodiment. [Figure 4] This is a flowchart showing an example of the entropy coding process according to the first embodiment. [Figure 5] This flowchart shows an example of the entropy decoding process according to the first embodiment. [Figure 6] This is a flowchart showing an example of the encoding process according to the first embodiment. [Figure 7] This is a flowchart showing an example of the decoding process according to the first embodiment. [Figure 8] This is a schematic block diagram showing an example configuration of a data processing system according to the second embodiment. [Figure 9] This is a flowchart showing an example of the encoding process according to the second embodiment. [Figure 10] This is a flowchart showing an example of the decoding process according to the second embodiment. [Figure 11] This is a schematic block diagram illustrating the minimum configuration of an encoding device. [Figure 12] This is a schematic block diagram illustrating the minimum configuration of a decoding device. [Modes for carrying out the invention]

[0010] Embodiments of the present invention will be described below with reference to the drawings. <First Embodiment> First, the first embodiment will be described. Figure 1 is a schematic block diagram showing an example of the configuration of a data processing system 1 according to the first embodiment. The data processing system 1 is composed of an encoding device 10 and a decoding device 20. In the following description, the case in which the encoding device 10 and the decoding device 20 are mainly configured as an image encoding device and an image decoding device will be used as an example. The input values ​​to be processed by the encoding device 10 and the output values ​​that the decoding device 20 obtains as the decoding result may be signal values ​​for each pixel, feature quantities that represent the characteristics of an image, or element values ​​of those feature quantities. The encoding device 10 and the decoding device 20 may each be configured as part of other equipment. Other equipment is not limited to general-purpose information equipment such as PCs (Personal Computers), tablet terminals, multifunction mobile phones, and content servers, but may also be dedicated equipment such as cameras, video recorders, and playback devices.

[0011] The encoding device 10 determines a quantization interval for quantizing the input element values, which are elements of the input value to be processed, based on the processed quantized values, and determines a probability distribution of candidate quantization values, which are candidates for the quantized values ​​of the input element values, based on the processed quantized values. The encoding device 10 quantizes the input element values ​​using the determined quantization interval to determine the quantized values. The encoding device 10 entropy encodes the quantized sequence, which includes a quantized value code indicating the quantized value of the input element value, using the determined probability distribution. The encoding device 10 outputs the encoded sequence generated by entropy encoding to the decoding device 20. The decoding device 20 receives the encoded sequence as input to the encoding device 10. Based on the processed quantized values, the decoding device 20 determines a quantization interval for determining the quantized value by de-quantizing the quantized value code to be processed, and determines a probability distribution of candidate quantized values ​​based on the processed quantized values. The decoding device 20 entropy decodes the encoded sequence using the determined probability distribution and generates a quantized value sequence that includes the quantized value code to be processed. The decoding device 20 de-quantizes the quantized value code included in the quantized value sequence to determine the quantized value.

[0012] Next, we will describe an example of the functional configuration of the encoding device 10. The encoding device 10 is comprised of an input unit 122, a quantization unit 124, a quantized value storage unit 126, a quantization interval estimation unit 128, and an entropy encoding unit 130. The input unit 122 receives the input value to be processed. The input value (input) entered at one time may be a single element value (element) or may contain two or more element values. In this application, the element values ​​included in the input value are called "input element values". The input unit 122 sequentially outputs the input element values ​​input to its unit to the quantization unit 124.

[0013] The quantization unit 124 receives input element values ​​from the input unit 122 and the quantization interval from the quantization interval estimation unit 128. The quantization unit 124 processes the input element values ​​z i The input quantization interval Q i The input element values ​​are quantized according to the given formula, and the quantized value Z is obtained. i The input element value z is defined, and a sign indicating its quantized value (hereinafter referred to as the "quantized value sign") is also defined. i The input sequence z1, …, z i Among the values, these are the values ​​to be encoded. i, etc., indicates an index for identifying individual input element values.

[0014] The quantization interval for a single input element value can be given, for example, by a single predetermined value (scalar) for the entire range of that value. In this case, the quantized value for the input element value will be the value that best approximates the input element value among a plurality of discrete values ​​that are equally spaced at that quantization interval between the minimum and maximum values ​​of that value. The quantization interval for a single input element value can also be given by a single predetermined value for each of the multiple intervals that divide the range of that value. In this case, the quantization interval will be a vector containing a single interval-specific interval as its element value.

[0015] Each interval may consist of one quantization interval, or it may contain two or more quantization intervals. The quantized value for an input element value contained in an interval containing two or more quantization intervals is the discrete value that best approximates the input element value among the multiple discrete values ​​that divide the interval into two or more quantization intervals. Therefore, these discrete values ​​become candidates for quantized values. In the following explanation, candidates for quantized values ​​may be referred to as "quantized candidate values." The sign of the quantized value is the sign corresponding to the defined quantized value among the signs corresponding to each of the multiple quantized candidate values.

[0016] The code corresponding to each of the multiple candidate quantization values ​​may be, for example, a number determined in ascending order from its smallest value, or a bit sequence representing that number. For example, the quantization code 1 obtained using a quantization interval 1 for a certain quantization value 1, and the quantization code 2 obtained using a different quantization interval 2 for another quantization value 2, may be equal or different. In the following explanation, the code for each of the multiple candidate quantization values ​​may be referred to as the "quantized candidate code." The quantization unit 124 stores the defined quantization value in the quantization value storage unit 126 and outputs a quantization value code indicating that quantization value to the entropy coding unit 130.

[0017] The quantization value storage unit 126 stores the quantization value Z defined by the quantization unit 124.i are sequentially stored. The quantization values stored in the quantization value storage unit 126 correspond to the quantization value codes encoded by the entropy encoding unit 130. When a new quantization value Z i is stored, the quantization values Z1, …, Z i-1 corresponding to more preceding processed input element values are in a state of being stored in the quantization value storage unit 126.

[0018] The quantization interval estimation unit 128 determines a quantization interval for an input element value to be processed and a probability distribution of quantization candidate values for the input element value based on the quantization values of the processed input element values stored in the quantization value storage unit 126 using a predetermined mathematical model. In the present embodiment, there are a plurality of values that can be candidates for the quantization interval (hereinafter referred to as “quantization interval candidate values”). The plurality of quantization interval candidate values are each a real number or an integer. A plurality of quantization interval candidate values may be set in advance in the quantization interval estimation unit 128.

[0019] The quantization interval estimation unit 128 may reset (reset) the process for determining the probability distribution of the quantization candidate values for each unit that executes the encoding process at once in the entropy encoding (hereinafter referred to as “entropy coding unit”). The entropy coding unit is a series including N (N is a predetermined integer of 2 or more) quantization value codes. The entropy coding unit corresponds to an entropy decoding unit (described later) in the decoding device 20. The probability distribution of the quantization candidate values that are candidates for the quantization value Z i for the input element value to be processed is the conditional probability distribution of the quantization candidate values under the quantization values Z1, …, Z i-1 for the processed input element values. The probability distribution of the quantization candidate values is the quantization values Z1, …, Z i-1It can also be considered as a predicted value predicted from. In this embodiment, the probability distribution of quantization candidate values ​​is a discrete probability distribution showing the probability of occurrence for each quantization candidate value. The quantized value corresponds to one of those quantization candidate values. The quantization interval estimation unit 128 sets a preset initial value P1 as the probability distribution of quantization candidate values ​​for the quantized value Z1 immediately after resetting for each entropy coding unit. For example, a uniform distribution may be applied as the initial value P1. In a uniform distribution, the probability of occurrence for each quantization candidate value is a real value that is equal to each other.

[0020] The mathematical models applied to the quantization interval estimation unit 128 include a mathematical model for determining the quantization interval (hereinafter referred to as the "quantization interval model") and a mathematical model for determining the probability distribution of candidate quantization values ​​(hereinafter referred to as the "probability distribution model"). The quantization interval estimation unit 128 uses the following as explanatory variables for the quantization interval model: for example, the quantization value Z for the most recent predetermined number of processed input element values ​​(e.g., M up to i-1, where M is a predetermined integer greater than or equal to 1). i-1-M , …, Z i-1 The input element value z at that point in time is read from the quantized value storage unit 126 and used as the objective variable. i The occurrence probability for each candidate quantization interval value is calculated. The quantization interval estimation unit 128 inputs the candidate quantization interval value that gives the highest occurrence probability to the input element value z i Quantization interval Q i It can be defined as follows. The quantization interval estimation unit 128 determines the quantization value Z for the processed input element value. i-1-M , …, Z i-1 The input element value z to be processed i Quantization interval Q i This can also be seen as a prediction.

[0021] The quantization interval estimation unit 128 reads out the quantized value Z, for example, as an explanatory variable in the probability distribution model. i-1-M , …, Z i-1 The input element value z at that point is adopted. i Quantized value Z i The probability of occurrence for each candidate quantization interval value is given by the quantization value Z. i The probability distribution P({Z i}|Z i-1-M , …, Z i-1 It is calculated as {Z i} is the quantization value Z i This shows the set of candidate quantization values. The calculated probability distribution is given by the M processed quantization values ​​Z. i-1-M , …, Z i-1 The quantized value Z is given i This is the conditional probability distribution P({Z i}|Z i-1-N , …, Z i-1 ) may be expressed as the probability of occurrence for each candidate quantization value, or as the probability of occurrence for each sign of the candidate quantization value corresponding to each candidate quantization value.

[0022] As mathematical models, neural networks such as recurrent neural networks (RNNs) and convolutional neural networks (CNNs) can be applied. The applicable mathematical models are not limited to neural networks; other types of machine learning models such as random forests (RFs) and support vector machines (SVMs) may also be used. The quantization interval estimation unit 128 estimates the input element value z at that point in time. i The quantization interval Q defined for i The output is sent to the quantization unit 124, and the probability distribution P({Z i}|Z i-1-M , …, Z i-1The output is sent to the entropy coding unit 130.

[0023] The entropy coding unit 130 receives the quantization value Z defined by the quantization unit 124. i The corresponding quantized value code is input, and the quantization interval estimation unit 128 determines the probability distribution P({Z i}|Z i-1-N , …, Z i-1 The following is input: The entropy coding unit 130 performs entropy coding on each entropy coding unit, which is a quantization sequence composed of multiple quantization value codes, to generate a coded sequence. Entropy coding is a type of reversible coding (sometimes called lossless compression). As will be described later, the original quantization sequence can be restored by performing entropy decoding, which is the inverse processing of entropy coding, on the generated coded sequence.

[0024] More specifically, the entropy coding unit can determine the coding sequence by performing the process illustrated in Figure 4. (Step S122) The entropy coding unit 130 calculates the probability distribution P(Z) of the quantized candidate value corresponding to each quantized value code in the entropy coding unit. i |Z i-1-N , …, Z i-1 The numbers are successively multiplied, and their product is calculated as the probability distribution of candidate quantization values ​​given to the entire input coding sequence. The calculated probability distribution shows the occurrence probability for each candidate quantization value code, which represents a candidate quantization value.

[0025] (Step S124) The entropy coding unit 130 is pre-configured with multiple codewords. A codeword is, for example, a bit sequence consisting of one or more bits. The bit sequences that make up each of the multiple codewords are different from one another. The entropy coding unit 130 determines a codeword with a larger amount of information (bit length) for each quantization candidate value code that gives a lower probability of occurrence, and stores a codeword set in which each quantization candidate value code is associated with one codeword. In coding the quantization candidate value codes, the entropy coding unit 130 can use any of the following methods, for example, Huffman coding or arithmetic coding.

[0026] (Step S126) The entropy coding unit 130 refers to the stored codeword set and takes the input quantization value Z i Identify the codeword corresponding to the quantized value code and the quantized candidate value code that is equal to the corresponding quantized value code. (Step S128) The entropy coding unit 130 generates an encoded sequence by concatenating the codewords specified for each quantized value code in the order in which the quantized value codes are input. The entropy coding unit 130 outputs the generated encoded sequence to the decoding device 20.

[0027] Next, we will describe an example of the functional configuration of the decoding device 20 (Figure 1). The decoding device 20 is comprised of an entropy decoding unit 242, an inverse quantization unit 244, a quantization value storage unit 246, a quantization interval estimation unit 248, and an output unit 250. The entropy decoding unit 242 receives the encoded sequence from the encoding device 10 for each entropy decoding unit, and the quantization interval estimation unit 248 receives the probability distribution P({Z i}|Z i-1-M , …, Z i-1The following is input for each decoded quantization value. The entropy decoding unit 242 performs entropy decoding on the encoded sequence input from the encoding device 10 (hereinafter referred to as the "input encoded sequence") to generate a quantization sequence containing N quantization value codes, and outputs the generated quantization value codes individually to the inverse quantization unit 244 in the order they are generated.

[0028] As will be described later, the probability distribution P({Z i}|Z i-1-M , …, Z i-1 ) is the quantized value Z based on the quantized value code output to the inverse quantization unit 244. i Probability distribution P({Z i}|Z i-1-M , …, Z i-1 This corresponds to ). The entropy decoding unit 242 recursively determines a reconstructed sequence that is equal to the input coding sequence, thereby determining each quantization value Z i It is possible to decode a quantized value code that includes a quantized value code that represents the individual quantized value Z. i Probability distribution P({Z i}|Z i-1-M , …, Z i-1 The code sequence is shown to be reconstructed using ).

[0029] More specifically, the entropy decoding unit 242 can determine the quantization sequence by performing the process illustrated in Figure 5. Similar to the entropy coding unit 130, the entropy decoding unit 242 has multiple codewords and multiple candidate quantization value codes pre-configured. Here, the entropy decoding unit 242 uses a method equivalent to the inverse processing of the entropy coding method used by the entropy coding unit 130 as its entropy decoding method.

[0030] (Step S222) The entropy decoding unit 242 divides the input coding sequence into a permutation of N codewords (segments). In dividing the input coding sequence into permutations of codewords, the entropy decoding unit 242 sequentially identifies codewords that have bit sequences that match bit sequences that become part of the input coding sequence. In general, there are multiple permutations of the N codewords included in the input coding sequence. Also, some of the pre-set codewords may not be included in the divided permutations, or other parts may be included more than once. (Step S224) The entropy decoding unit 242 tentatively determines a quantization candidate value code corresponding to each codeword and stores a set of codewords in which each codeword is associated with one of the tentatively determined quantization candidate value codes.

[0031] (Step S226) The entropy decoding unit 242 refers to the stored codeword set, determines a corresponding quantization candidate value code for each divided codeword, and sequentially outputs the quantization candidate value codes corresponding to the codewords as quantization value codes to the inverse quantization unit 244 according to the arrangement order in the input coding sequence. (Step S228) The entropy decoding unit 242 calculates the probability distribution P(Z) of candidate quantized values ​​corresponding to each individual quantized value code. i |Z i-1-N , …, Z i-1 The values ​​are successively multiplied, and their product is calculated as the probability distribution of candidate quantized values ​​given to the entire quantization sequence. (Step S230) The entropy decoding unit 242 resets the codewords for each quantization candidate value code that have a lower probability of occurrence, and updates the encoding set for the original quantization candidate value code to a codeword set that associates the reset codeword with that quantization candidate value code.

[0032] (Step S232) The entropy decoding unit 242 refers to the stored codeword set and inputs probability distribution P(Z i |Z i-1-N , …, Z i-1Identify a candidate quantization value code that is equal to the quantization value code that gives the corresponding quantization value for each of the ), and identify a codeword that corresponds to the identified candidate quantization value code. (Step S234) The entropy decoding unit 242 concatenates the codewords identified for each quantized value code constituting the input coding sequence in the order in which they were identified, thereby generating the coding sequence as a reconstructed coding sequence.

[0033] (Step S236) The entropy decoding unit 242 determines whether the generated reconstructed coded sequence and the input coded sequence are equal. If it determines they are equal (Step S236 YES), it proceeds to the process in Step S238. If it determines they are not equal (Step S236 NO), it returns to the process in Step S222, and the entropy decoding unit 242 repeats the processes from Step S222 up to this step. However, in the repeated processes, the entropy decoding unit 242 executes either (1) or (2) or both. Thus, different reconstructed coded sequences are generated, and the generated reconstructed coded sequence is compared with the input coded sequence. (1) In step S222, the partitioning pattern of N codewords into permutations is changed to a new partitioning pattern that has not been used in the previously executed process. (2) In step S224, the correspondence between the codeword and the candidate quantization value code is changed to a new correspondence that was not used in the previously executed process.

[0034] (Step S238) The entropy decoding unit 242 determines the permutation of quantized value codes corresponding to each of the N codewords that make up the reconstructed coding sequence as the quantized sequence, which is the result of the entropy decoding process. The entropy decoding unit 242 outputs the determined quantized sequence to the inverse quantization unit 244. After that, the process shown in Figure 5 is terminated.

[0035] Furthermore, the inverse quantization unit 244, for each quantized value code included in the quantized sequence input from the entropy decoding unit 242 and determined, inverse quantization is performed using the quantization interval for that quantized value code, and the resulting quantized value Z iThe inverse quantization unit 244 calculates the calculated quantization value Z. i This is output to the output unit 250. The output unit 250 receives the quantized value Z from the inverse quantization unit 244. i The output is stored as an output element value, which is an element of the output value. The output unit 250 outputs the output value, including the output element value, to the outside of the decoding device 20 or to another component.

[0036] The inverse quantization unit 244 receives individual quantization value codes sequentially from the entropy decoding unit 242, and the quantization value Z associated with that quantization value code is input to the inverse quantization unit 244. i Quantization interval Q i These are input sequentially. The quantized value codes input at this stage are the quantized value codes input from the entropy decoding unit 242 in step S226. The inverse quantization unit 244 processes each quantized value code for the corresponding quantization interval Q. i The quantized value Z is obtained by dequantizing it using the dequantized value. i The inverse quantization unit 244 stores the defined quantization value in the quantization value storage unit 246.

[0037] The processing performed by the quantization value storage unit 246 and the quantization interval estimation unit 248 is the same as the processing performed by the quantization value storage unit 126 and the quantization interval estimation unit 128, respectively. In other words, the quantization value storage unit 246 stores the quantization value Z determined by the inverse quantization unit 244. i These are stored sequentially. The quantized values ​​stored in the quantized value storage unit 246 correspond to the quantized value codes defined by the entropy decoding unit 242. Quantized value Z i At the point when it is newly stored in memory, the quantization values ​​Z1, ..., Z that were determined earlier are used. i-1 This state is then stored in the quantized value storage unit 246.

[0038] The quantization interval estimation unit 248 uses a quantization interval model and a probability distribution model to determine the quantization value Z based on the processed quantization values ​​stored in the quantization value storage unit 246. i The quantization interval Qi and its quantized value Z. i Probability distribution P({Z i}|Z i-1-N , …, Z i-1 The quantization interval Q is determined. The quantization interval estimation unit 248 determines the determined quantization interval Q. i The output is sent to the inverse quantization unit 244, and the probability distribution P({Z i}|Z i-1-N , …, Z i-1 The output is sent to the entropy decoding unit 242.

[0039] The entropy coding unit 130 and the entropy decoding unit 242 can each use, for example, the arithmetic coding method and the corresponding decoding method described in the following literature as methods for determining codewords corresponding to quantization value codes that represent individual quantization values. Jorma Rissanen and Glen G Langdon. Arithmetic coding. IBM Journal of research and development, 23 (2):149-162, 1979 Glen G Langdon. An introduction to arithmetic coding. IBM Journal of research and development, 1984 Jun Han, et al. Deep Generative Video Compression. 33rd Conference on Neural Information Processing Systems (NeurIPS 2019), Vancouver, Canada, 2019

[0040] (Example hardware configuration) Each part of the encoding device 10 may include dedicated components, but it may also be composed of general-purpose components as described below and function as a computer. Figure 2 is a schematic block diagram showing an example of the hardware configuration of the encoding device 10 according to this embodiment. The encoding device 10 comprises a processor 102, a drive unit 106, an input / output unit 108, a ROM 112, and a RAM 114.

[0041] The processor 102 performs processing to enable the encoding device 10 to function and controls the functions of each component that makes up the encoding device 10. The processor 102 is, for example, a CPU (Central Processing Unit). The drive unit 106 allows the storage medium 104 to be attached and detached, and reads various data stored in the storage medium 104, or stores various data in the storage medium 104. The drive unit 106 is, for example, a solid-state drive (SSD). The storage medium 104 is, for example, a volatile memory such as RAM (Random Access Memory) or flash memory.

[0042] The input / output unit 108 inputs or outputs various types of data wirelessly or via wired connections to other devices. The input / output unit 108 may also be connected to other devices via a communication network to enable input and output of various types of data. The input / output unit 108 may be, for example, an input / output interface, a communication interface, or a combination thereof.

[0043] The ROM (Read Only Memory) 112 permanently stores a program containing instructions that guide each part of the encoding device 10 to perform various processes, various data such as parameters for its execution, and various data acquired by each part of the encoding device 10. In the following explanation, the execution of processes instructed by the instructions written in the program may be referred to as "executing the program" or "program execution." RAM114 is primarily used as a workspace for CPU110. Upon startup, CPU10 records the program and parameters stored in ROM112 into RAM114. CPU110 then temporarily stores the calculation results obtained from its execution, acquired data, etc., into RAM114. Furthermore, each part of the decoding device 20 may include dedicated components, but it may also include the hardware configuration illustrated in Figure 2.

[0044] (Example of a machine learning model) Next, we will describe an example of a machine learning model used in the quantization interval estimation units 128 and 248 according to this embodiment. Figure 3 shows a CNN as an example of a machine learning model according to this embodiment. A CNN is a type of artificial neural network that comprises one input layer, multiple intermediate layers (hidden layers), and one output layer. The CNN illustrated in Figure 3 comprises an input layer Il, L-layer (where L is an integer greater than or equal to 2) intermediate layers Ml-1 to Ml-L, and an output layer Ol. Each layer comprises a predetermined number of nodes. The multiple intermediate layers include at least one convolutional layer and one pooling layer.

[0045] Each node in the input layer Il outputs the input value it receives to at least one node in the next layer. Each node in the output layer Ol outputs an input value received from at least one node in the preceding layer. A convolutional layer has a predetermined number of kernels. The number of kernels corresponds to the number of kernels used to process (e.g., perform calculations) on each input value. The number of kernels is usually less than the number of input values. A kernel is a processing unit that calculates one output value at a time. The output value calculated in one layer is used as the input value for the next layer. Kernels are also called filters. The kernel size indicates the number of input values ​​used in one process in a kernel. The kernel size is usually an integer of 2 or more.

[0046] A convolutional layer is a layer that performs a convolution operation on each of its multiple nodes, kernel by kernel, on the input values ​​received from the previous layer, calculating a convolved value. The calculated convolved value and a bias value are then added to calculate a corrected value. The convolutional layer calculates the function value of a predetermined activation function for the calculated corrected value and outputs the calculated output value to the next layer. Each node of the convolutional layer receives one or more input values ​​from the previous layer, and independent convolution coefficients are used for each input value to calculate the convolutional value at each node. The convolution coefficients, bias value, and activation function parameters form part of a set of model parameters.

[0047] For example, the rectified linear unit and the sigmoid function can be used as activation functions. The rectified linear unit is a function that sets the output value for input values ​​below a predetermined threshold (e.g., 0) to that threshold, and outputs input values ​​above that threshold as they are. Therefore, this threshold can be part of a set of model parameters. In addition, for convolutional layers, whether or not to reference input values ​​from the nodes of the previous layer and whether or not to output output values ​​to the nodes of the next layer can also be part of a set of model parameters.

[0048] A pooling layer is a layer that has a node that determines a single representative value from the input values ​​received from multiple nodes in the preceding layer, and outputs this determined representative value as the output value to the next layer. The representative value can be a value that statistically represents multiple input values, such as the maximum value, mean value, or mode. A stride is set in advance for the pooling layer. The stride indicates the range of mutually adjacent nodes in the preceding layer that reference the input values ​​for a single node. Therefore, a pooling layer can also be considered a layer that provides the output value to the next layer by reducing the input values ​​from the preceding layer to a lower dimension (downsampling).

[0049] (Parameter learning) The machine learning models used by the quantization interval estimation units 128 and 248 have pre-set model parameters for calculating the output value, which is the target variable, when input values, which are the explanatory variables, are input. In this application, the parameter set used for the quantization interval model is sometimes called the "quantization interval model parameter set," and the parameter set used for the probability distribution model is sometimes called the "probability distribution model parameter set." Therefore, the encoding device 10 may include a parameter learning unit (not shown) for performing model learning processing on the training data to obtain the parameter set for each machine learning model. The training data is sometimes also called supervised data or learning data. The training data consists of many datasets, each of which is a pair of known explanatory variables and a known target variable corresponding to those explanatory variables.

[0050] To obtain model parameters, the parameter learning unit acquires multiple datasets, each consisting of a set of known input values ​​as explanatory variables and a set of known output values ​​corresponding to those input values ​​as the objective variable. The parameter learning unit then recursively calculates the model parameters of the machine learning model in a parameter learning process such that the magnitude of the loss from the output values ​​in each dataset to the estimated values ​​calculated using a predetermined machine learning model for the input values ​​in each dataset is minimized for the entire training dataset.

[0051] As an index value of the magnitude of loss, for example, the sum of squared differences (SSD), the sum of absolute differences (SAD), cross entropy, etc. can be used. In calculating the model parameters, the parameter learning unit can use methods such as the gradient descent method, the stochastic gradient descent method, the conjugate gradient method, the backpropagation method, etc. In addition, in this application, minimization includes not only making it absolutely minimum but also searching for model parameters that give a smaller loss. Therefore, in the minimization procedure, it is possible that the loss temporarily increases. The quantization interval estimators 128 and 248 can respectively set the model parameters calculated by the parameter learning unit in their own machine learning models.

[0052] Next, the training data used for learning the quantization interval model will be described. The parameter learning unit obtains, as input values (explanatory variables), M quantization values Z i-1-M , …, Z i-1 up to the immediately preceding processed quantization value, and as output values (objective variables), the quantization interval Q i defined for the quantization value Z i to be processed at that time, and constructs a data set in which the input values and the output values are associated with each other. The quantization interval vector is composed of corresponding flags indicating whether or not the quantization interval represented by the vector corresponds to it, with integer values 1 and 0 as element values for each predetermined quantization interval candidate value. Therefore, among the quantization interval candidate values included in the quantization interval vector, the value of the corresponding flag corresponding to the value equal to the defined quantization interval is 1, and the values of the corresponding flags corresponding to the other quantization interval candidate values are 0.

[0053] The parameter learning unit, when determining the quantization interval Q shown as the output value i calculates a predetermined cost value for each individual quantization interval candidate value with respect to the input element value z i that gives the quantization value Z i and determines the quantization interval candidate value that gives the cost value with the lowest cost related to quantization as the optimal quantization interval Q i for the quantization value Z i The cost value is an index value for calculating an index value indicating the quantization cost by synthesizing a first cost component indicating a higher cost as the information amount is larger and a second cost component indicating a lower cost as the quantization error is smaller. Generally, as the quantization interval Qi becomes larger, the information amount of the quantization candidate value code for indicating the quantization value Z i decreases, while the quantization error increases. Since the first cost component and the second cost component have a trade-off change tendency according to the change of the quantization interval Q i , one quantization interval Q i is determined for the given input element value z i . Therefore, it is expected that the reliability for each quantization interval candidate value can be obtained as the output value calculated using the quantization interval model for the M quantization values Z i-1-M , …, Z i-1 as input values.

[0054] As the first cost component, for example, a real value given by a function (e.g., proportional) that monotonically increases according to the increase in the information amount required for representing the quantization value Z i with the quantization interval Q i can be applied. The parameter learning unit can determine, as the first cost component, a multiplication value obtained by multiplying a predetermined first weight coefficient by the bit length of the quantization candidate value code determined in advance for the quantization interval Q i . When the quantization interval Q i is a scalar value, the parameter learning unit rounds up to an integer value the logarithmic value obtained based on the quotient ζ i obtained by dividing the value range width W i of the quantization value Z i as the base and obtains log2[ceil(ζi ) can be calculated as the bit length of the quantization candidate value code. ceil(...) represents the ceiling function for real values...

[0055] As a second cost component, for example, a real value that quantitatively indicates the magnitude of the quantization error can be applied. The parameter learning unit, for example, the input element value z i and quantization value Z i The second cost component can be defined as a multiplied value obtained by multiplying the absolute value of the quantization error (the difference between the two values) by a predetermined second weighting coefficient. When the input element value and the quantized value are vectors, SSD, SAD, cross-entropy, etc., can be applied instead of the absolute value. In this application, optimization includes not only determining the most appropriate candidate quantization value, but also searching for candidate quantization values ​​that yield lower cost values. Therefore, during the optimization procedure, the cost value may increase, or candidate quantization values ​​that yield higher cost values ​​may be determined.

[0056] Next, we will explain the training data used to learn the probability distribution model. The parameter learning unit takes M quantized values ​​Z up to the most recently processed quantized value as input values ​​(explanatory variables). i-1-M , …, Z i-1 And, as the output value (target variable), the quantized value Z of the target to be processed. i The probability distribution of quantization candidate values ​​is obtained, and a dataset is constructed by associating the input and output values. The probability distribution of quantization candidate values ​​corresponds to the frequency of occurrence of each individual quantization candidate value. Also, for a single quantization candidate value, there are multiple quantization candidate values. Therefore, the parameter learning unit sets the quantization interval Q. i The probability distribution of the quantization candidate values ​​can be determined by counting the frequency of occurrence of each individual quantization candidate value and normalizing the counted frequency by dividing it by the sum of the occurrence frequencies. When the parameter learning unit counts the frequency of occurrence of the quantization candidate values, the input element value z i The quantization interval Q is defined for each i Among the candidate quantization values ​​for the input element value z, i The quantization value Z defined for iThe frequency of occurrence of a quantization candidate value equal to Z is increased by one, while the frequencies of the other quantization candidate values ​​are maintained. Therefore, there are M quantization values ​​Z as input values. i-1-M , …, Z i-1 It is expected that the output values ​​calculated using a probability distribution model will be the probability of occurrence for each candidate quantization value, i.e., the probability distribution of the candidate quantization values.

[0057] (Encoding process) Next, the encoding process according to this embodiment will be described. Figure 6 is a flowchart showing an example of the encoding process according to this embodiment.

[0058] (Step S102) The input unit 122 acquires the input value to be processed and outputs it to the quantization unit 124. (Step S104) The quantization interval estimation unit 128 uses a quantization interval model to determine the quantization interval of the quantized value to be processed for the N processed quantized values ​​up to that point. The quantization interval estimation unit 128 outputs the determined quantization interval to the quantization unit 124.

[0059] (Step S106) The quantization unit 124 quantizes the input element values ​​included in the acquired input value using the quantization interval estimated by the quantization interval estimation unit 128. The quantization unit 124 stores the quantized value obtained by quantization in the quantized value storage unit 126. (Step S108) The quantization interval estimation unit 128 uses a probability distribution model to estimate the probability distribution of candidate quantization values ​​related to the quantization value to be processed at that time, based on the N processed quantization values ​​up to that point. The quantization interval estimation unit 128 outputs the estimated probability distribution to the entropy coding unit 130.

[0060] (Step S110) The entropy coding unit 130 uses the estimated occurrence probability for each quantization value for each entropy coding unit to entropy code the quantization sequence, which includes the quantization code representing each quantization value calculated by the quantization unit 124. The entropy coding unit 130 outputs the coded sequence generated by the entropy coding. After that, the process shown in Figure 6 is terminated.

[0061] (Decryption process) Next, the decoding process according to this embodiment will be described. Figure 7 is a flowchart showing an example of the decoding process according to this embodiment.

[0062] (Step S202) The quantization interval estimation unit 248 uses a quantization interval model to determine the quantization interval of the quantized value to be processed for the N processed quantized values ​​up to that point. The quantization interval estimation unit 248 outputs the determined quantization interval to the inverse quantization unit 244. (Step S204) The quantization interval estimation unit 248 uses a probability distribution model to estimate the probability distribution of candidate quantization values ​​related to the quantization value to be processed at that time, based on the N processed quantization values ​​up to that point. The quantization interval estimation unit 128 outputs the estimated probability distribution to the entropy decoding unit 242.

[0063] (Step S206) The entropy decoding unit 242 receives the encoded sequence for each entropy decoding unit. The entropy decoding unit 242 uses the estimated occurrence probability for each quantization value to perform entropy decoding on the input quantization sequence. The entropy decoding unit 242 outputs the quantized codes included in the quantization sequence generated by entropy decoding to the inverse quantization unit 244. (Step S208) The inverse quantization unit 244 calculates a quantized value by inverse quantization of the quantized code input from the entropy decoding unit 242 using the quantization interval input from the quantization interval estimation unit 248. The inverse quantization unit 244 stores the quantized value obtained by inverse quantization in the quantized value storage unit 246. The inverse quantization unit 244 outputs the quantized value based on the quantized code included in the quantized sequence determined by the entropy decoding unit 242 to the output unit 250. (Step S210) The output unit 250 outputs an output value that includes the quantized value input from the inverse quantization unit 244 as an output element value. After that, the process shown in Figure 7 is terminated.

[0064] <Second Embodiment> Next, a second embodiment will be described. The following description will mainly focus on the differences from the first embodiment. Components and processes common to the first embodiment will be denoted by the same reference numerals and described accordingly. Figure 8 is a schematic block diagram showing an example of the configuration of the data processing system 1 according to the second embodiment. The data processing system 1 is configured to include an encoding device 10 and a decoding device 20. The encoding device 10 includes an input unit 122, a quantization unit 124, a quantized value storage unit 126, a quantization interval estimation unit 128, and an entropy encoding unit 130, as well as a probability distribution estimation unit 132 and a second quantization unit 134.

[0065] The probability distribution estimation unit 132 uses a predetermined probability distribution estimation model to determine a continuous probability distribution of candidate quantization values ​​for the input element values ​​to be processed, based on the quantized values ​​of the processed input element values ​​stored in the quantization value storage unit 126. The probability distribution estimation unit 132 determines the parameters of a predetermined distribution function that exhibits the characteristics of the continuous probability distribution (hereinafter referred to as "distribution function parameters"). Applicable predetermined distribution functions include, for example, the normal distribution (including multidimensional normal distributions of two or more dimensions), the Poisson distribution, the Laplace distribution, or a weighted sum thereof. If the predetermined distribution function is a weighted sum of multiple normal distributions, the distribution function parameters are the weight coefficients, mean, and variance for each individual normal distribution. If the predetermined distribution function is a weighted sum of Poisson distributions, the distribution function parameters are the weight coefficients, base (rate), and number of occurrences for each individual Poisson distribution. If the predetermined distribution function is a weighted sum of Laplace distributions, the distribution function parameters are the weight coefficients, scale, and location for each individual Laplace distribution. The probability distribution estimation unit 132 then processes the M quantized values ​​Z. i-1-M , …, Z i-1 The probability distribution estimation model is used to calculate the distribution function parameters. The probability distribution estimation unit 132 outputs the calculated distribution function parameters to the second quantization unit 134.

[0066] The training data used to learn the probability distribution model parameters used by the probability distribution estimation unit 132 includes M quantized values ​​Z up to the most recently processed quantized value. i-1-M , …, Z i-1 The input value is Z, and the quantized value to be processed is Z. i Probability distribution P(Z) of candidate quantization values ​​for Z i |Z i-1-N , …, Z i-1 The distribution function parameter that shows ) is adopted as the output value, and the dataset contains many data sets that associate the input value with the output value. The model learning unit uses the distribution function P(Z) counted by the above method. i |Z i-1-N , …, Z i-1 For ), a known regression analysis may be performed assuming a predetermined distribution function to pre-determine the distribution function parameters.

[0067] The second quantization unit 134 receives the quantization interval Q from the quantization interval estimation unit 128. i The following is input, and the distribution function parameters are input to the second quantization unit 134. The second quantization unit 134 processes the continuous probability distribution p({z}) represented by the distribution function parameters. i}|Z i-1-N , …, Z i-1 The quantization interval is quantized using the quantization interval input from the quantization interval estimation unit 128, and the probability distribution P(Z) of the candidate quantization value is a discrete probability distribution. i |Z i-1-N , …, Z i-1 ) generates a probability distribution P(Z i |Z i-1-N , …, Z i-1 ) indicates the probability of occurrence for each candidate quantization value determined by the quantization interval. More specifically, the second quantization unit 134 provides a continuous probability distribution p({z i}|Z i-1-N , …, Z i-1 The second quantization unit 134 integrates the generated probability distribution P(Z) and calculates the probability of occurrence of the candidate quantized values. i |Z i-1-N , …, Z i-1 The output is sent to the entropy coding unit 130. Furthermore, the second quantization unit 134 may use a cumulative distribution function (CDF) for a one-dimensional continuous probability distribution in its integral operation of that distribution. The CDF is the integral form of a continuous probability distribution. The integral value within the range of the continuous probability distribution is the difference value obtained by subtracting the function value of the CDF for the lower bound of the range from the function value of the CDF for the upper bound of the range.

[0068] The entropy coding unit 130, similar to the first embodiment, uses the probability distribution P(Z i |Z i-1-N , …, Z i-1 Entropy coding is performed on the quantization sequence using the probability distribution P(Z). In the quantization interval estimation unit 128, i |Z i-1-N , …, Z i-1The configuration related to the estimation of ) may be omitted. Therefore, a probability distribution model does not need to be set in the quantization interval estimation unit 128.

[0069] The system comprises an entropy decoding unit 242, an inverse quantization unit 244, a quantized value storage unit 246, a quantization interval estimation unit 248, and an output unit 250, as well as a probability distribution estimation unit 252 and a quantization unit 254. The probability distribution estimation unit 252, similar to the probability distribution estimation unit 132, uses a probability distribution estimation model to determine a continuous probability distribution of candidate quantization values ​​for the quantization value to be processed, based on the processed quantization values ​​stored in the quantization value storage unit 246. The continuous probability distribution is represented using probability distribution parameters. The probability distribution estimation unit 252 outputs the determined probability distribution parameters to the quantization unit 254.

[0070] The quantization unit 254 receives the quantization interval Qi from the quantization interval estimation unit 248 and the distribution function parameters from the quantization unit 254. The quantization unit 254 uses the same method as the second quantization unit 134 to calculate the continuous probability distribution p({z}) represented by the distribution function parameters. i}|Z i-1-N , …, Z i-1 The quantization interval is quantized using the quantization interval input from the quantization interval estimation unit 248, and the probability distribution P(Z) of the candidate quantization value, which is a discrete probability distribution, is obtained. i |Z i-1-N , …, Z i-1 The quantization unit 254 generates the generated probability distribution P(Z). i |Z i-1-N , …, Z i-1 The output is sent to the entropy decoding unit 242.

[0071] The entropy decoding unit 242, similar to the first embodiment, uses the probability distribution P(Z i |Z i-1-N , …, Z i-1 The quantization sequence is subjected to entropy coding using the probability distribution P(Z). The quantization interval estimation unit 248 calculates the probability distribution P(Z). i |Z i-1-N , …, Z i-1The processing and configuration related to the estimation of ) may be omitted. Therefore, a probability distribution model does not need to be set in the quantization interval estimation unit 248. The candidate quantization values ​​that constitute the probability distribution output from the second quantization unit 134 or the quantization unit 254 may be represented using the sign of the candidate quantization value.

[0072] Next, the encoding process according to this embodiment will be described. Figure 9 is a flowchart showing an example of the encoding process according to this embodiment. The encoding process according to this embodiment includes the processes in steps S102, S104, S106, S108a, S108b and S110. In this embodiment, after the processing in step S106 is completed, the process proceeds to step S108a. (Step S108a) The probability distribution estimation unit 132 uses a predetermined probability distribution estimation model to determine a continuous probability distribution of candidate quantization values ​​for the input element values ​​to be processed, based on the quantized values ​​of the processed input element values. (Step S108b) The second quantization unit 134 quantizes the continuous probability distribution defined by the probability distribution estimation unit 132 using the quantization interval defined by the quantization interval estimation unit 128, and generates a probability distribution of candidate quantization values, which is a discrete probability distribution. After that, the process proceeds to step S110.

[0073] Next, the encoding process according to this embodiment will be described. Figure 10 is a flowchart showing an example of the decoding process according to this embodiment. The encoding process according to this embodiment includes the processes in steps S202, S204a, S204b, S206, S208 and S210. In this embodiment, after the processing in step S202 is completed, the process proceeds to step S204a. (Step S204a) The probability distribution estimation unit 252 uses a predetermined probability distribution estimation model to determine a continuous probability distribution of candidate quantization values ​​for the quantization values ​​to be processed, based on the processed quantization values. (Step S204b) The quantization unit 254 quantizes the continuous probability distribution defined by the probability distribution estimation unit 252 using the quantization interval defined by the quantization interval estimation unit 248, and generates a discrete probability distribution of candidate quantization values. After that, the process proceeds to step S206.

[0074] The information to be processed according to each of the above embodiments (hereinafter referred to as "processing information") is not limited to a specific type of information. More specifically, processing information refers to information represented by input values ​​input to the encoding device 10, quantized values ​​quantized in the encoding device 10, or quantized values ​​decoded in the decoding device 20. Processing information is any information that can be sequentially acquired spatially or temporally and expressed as quantized values ​​obtained by quantization. Processing information may be, for example, signal values ​​for each pixel representing an image, predictive coding residuals in blocks forming part of an image, or conversion coefficients to the frequency domain. Processing information may be predictive coefficients showing frequency characteristics for each predetermined interval, basic frequency, gain for each harmonic component, etc. Processing information may also be point cloud data. Point cloud data is data that shows the state of the surface of an object in three-dimensional space. Point cloud data consists of data that shows the coordinates in three-dimensional space and the state at those coordinates (e.g., color, brightness, temperature, pressure, etc.) for each of multiple sample points.

[0075] Furthermore, the encoding device 10 may be provided with input values ​​to be processed, or it may be equipped with a feature analysis unit (not shown) for performing predetermined calculations to determine the information to be processed from the input data to the device. The calculations performed by the feature analysis unit may be a dedicated step for determining the information to be processed from the input data, a step of a known encoding process, or a step of another process that does not primarily involve encoding (for example, image recognition, speech recognition, monitoring, etc.).

[0076] The feature analysis unit receives, for example, image data showing signal values ​​for each pixel, or point cloud data showing signal values ​​for each coordinate, as input data, and generates feature quantities (features) as processing information, which include individual element values ​​calculated using a predetermined mathematical model with the signal values ​​for each pixel as explanatory variables. If the predetermined mathematical model is a neural network, the feature analysis unit may provide the output value obtained as the target variable as processing information, or it may provide the calculated value obtained in any of the intermediate layers as processing information.

[0077] The decoding device 20 may output the quantized values ​​to be processed obtained by the decoding process, or it may include an information restoration unit (not shown) for generating output data restored by performing a predetermined inverse operation from the acquired quantized values. The calculation process of the information restoration unit (not shown) may be a dedicated step for generating output data from the data to be processed, a part of a known decoding process, or a part of another process whose primary purpose is not decoding (e.g., image recognition, speech recognition, surveillance, etc.).

[0078] The information reconstruction unit, for example, uses a predetermined mathematical model to calculate the signal value for each pixel using feature quantities, which are quantized values ​​to be reconstructed as the information to be processed, as explanatory variables, and reconstructs image data showing the calculated signal values. If the predetermined mathematical model is a neural network, the information reconstruction unit may process the information to be processed as input values ​​obtained as explanatory variables, or it may supply the information to be processed in place of calculated values ​​obtained in a predetermined intermediate layer, assuming that input values ​​are input as explanatory variables. The predetermined intermediate layer may be any layer corresponding to the intermediate layer for which the feature analysis unit provided the feature quantities. The information to be processed may be represented as a scalar, a vector, or a high-dimensional variable value where each sample is represented by a vector of two or more dimensions. The information to be processed provided may, for example, be a feature vector in which each sample contains element values ​​specified by x rows, y columns, and c channels. When a neural network is used as the mathematical model, each sample is the output value or calculated value from one node constituting each layer, or the input value or calculated value to that node, corresponding to the index i above.

[0079] In the above explanation, we primarily focused on cases where the quantization interval model and the probability distribution model are mathematical models, but this is not the only case. The quantization interval model takes M quantization values ​​Z as input values. i-1-M , …, Z i-1 For each input value, the quantization interval Q is obtained as the output value. i It may also be a data table that shows the correspondence between the two. The quantization interval estimation units 128 and 248 refer to the data table set in their respective units and process the M quantized values ​​Z i-1-M , …, Z i-1 The corresponding quantization interval Q i It is possible to determine this. The probability distribution model takes M quantization values ​​Z as input values. i-1-M , …, Z i-1 For each input value, a data table may be used to show the probability distribution of the quantization candidate values ​​obtained as an output value (or the distribution function parameters of the said probability distribution) in association with the input value. The quantization interval estimation units 128, 248 or the probability distribution estimation units 132, 252 refer to the data table set in their respective units and process the M quantization values ​​Z i-1-M , …, Z i-1 The probability distribution of the corresponding quantization candidate values ​​(or the distribution function parameters of that probability distribution) can be defined.

[0080] The quantization interval estimation units 128 and 248 estimate the quantization value Z i Quantization interval Q related to this interval i The processed quantized value Z that is referenced when determiningi-1-M , …, Z i-1 This does not necessarily involve the quantization value Z i The quantized values ​​of spatially or temporally adjacent samples are not included, and the quantized value Z i The dataset may contain only quantized values ​​of samples that are spatially or temporally isolated (for example, samples that are in the same phase in adjacent frames, blocks, or slices). "In the same phase" means that the relative rank or position is the same within a processing unit such as a frame, block, or slice. The quantization interval estimation units 128, 248 or the probability distribution estimation units 132, 252 estimate the quantized value Z i The processed quantized value Z is used as a reference when determining the probability distribution of candidate quantized values ​​(or the distribution function parameters of said probability distribution). i-1-M , …, Z i-1 However, the quantization value Z is not necessarily i The quantized values ​​of spatially or temporally adjacent samples are not included, and the quantized value Z i It may include only the quantized values ​​of samples that are spatially or temporally isolated.

[0081] (Minimum configuration) Next, the minimum configuration of the above embodiment will be described. Figure 11 is a schematic block diagram illustrating the minimum configuration of the encoding device 10. Figure 12 is a schematic block diagram illustrating the minimum configuration of the decoding device 20. As shown in Figure 11, the encoding device 10 comprises an estimation unit 128m, a quantization unit 124, and an entropy encoding unit 130. The estimation unit 128m determines a quantization interval for quantizing the input element values, which are elements of the input value to be processed, based on the processed quantized values, and determines a probability distribution of candidate quantization values, which are candidates for the quantized values ​​of the input element value to be processed, based on the processed quantized values. The quantization unit 124 quantizes the input element values ​​using the quantization interval determined by the estimation unit 128m to determine the quantized values. The entropy encoding unit 130 entropy encodes the quantization sequence, which includes a quantized value code indicating the quantized value of the input element value, using the probability distribution determined by the estimation unit 128m.

[0082] As shown in Figure 12, the decoding device 20 comprises an estimation unit 248m, an entropy decoding unit 242, and an inverse quantization unit 244. The estimation unit 248m determines a quantization interval for determining a quantization value by inverse quantizing the quantization value code to be processed based on the processed quantization value, and determines a probability distribution of candidate quantization values, which are candidates for the quantization value, based on the processed quantization value. The entropy decoding unit 242 uses the probability distribution determined by the estimation unit 248m to entropy decode the coding sequence and generates a quantization value sequence that includes the quantization value code to be processed. The inverse quantization unit 244 determines a quantization value by inverse quantizing the quantization value code included in the quantization value sequence.

[0083] According to the encoding device 10, the quantization interval for the input element values ​​to be processed and the probability distribution of candidate quantization values ​​are determined based on the processed quantized values. In entropy coding, a quantized value code for representing the quantized values ​​can be determined based on the probability distribution of candidate quantization values. According to the decoding device 20, the quantization interval for the quantized value code to be processed and the probability distribution of the candidate quantized values ​​are determined based on the processed quantized values. In entropy decoding, the quantized value code for representing the quantized value can be determined based on the probability distribution of the candidate quantized values.

[0084] Therefore, even if the encoding device 10 does not provide information on the quantization interval, the decoding device 20 can reconstruct the quantization interval used for quantization in the encoding device 10, and consequently the quantized value, from the encoded sequence obtained by encoding. Furthermore, in entropy encoding and entropy decoding, a quantization code can be determined that indicates candidate quantization values ​​including the quantized value to be processed, based on a probability distribution determined from the processed quantized value. This makes it possible to achieve a reduction in the amount of information related to the representation of the quantized value.

[0085] The estimation unit 128m may be implemented in a different form, such as a quantization interval estimation unit 128 (Figure 1), or a quantization interval estimation unit 128 and a probability distribution estimation unit 132 (Figure 8). For example, the estimation unit 128m may use a mathematical model in which the processed quantized values ​​are used as explanatory variables and the quantization interval for quantizing the input element values ​​is used as the objective variable to determine the quantization interval from the processed quantized values ​​determined by the quantization unit 124. With this configuration, the quantization interval for the input element values ​​to be processed is determined from the processed quantized values. Alternatively, the estimation unit 248m may also use a mathematical model in which the processed quantized values ​​are used as explanatory variables and the quantization interval for inverse quantization of the sign of the quantized value to be processed is used as the objective variable, thereby determining the quantization interval from the processed quantized values ​​determined by the inverse quantization unit 244. This allows the quantization interval for the target to be processed to be predicted from the processed quantized value. Therefore, when quantizing the input element value to be processed or dequantizing the sign of the quantized value, a quantization interval appropriate to the target is obtained. As a result, delays in quantization or dequantization can be suppressed.

[0086] The estimation unit 128m may use a mathematical model in which the processed quantized values ​​are used as explanatory variables and the quantization interval is set as the objective variable for quantizing the distribution function parameters, which are parameters of a probability distribution function that indicates the probability of occurrence of candidate quantized values ​​to be processed, to determine the distribution function parameters of the probability distribution function from the processed quantized values ​​determined by the quantization unit 124. The encoding device 10 may also include a second quantization unit 134 (Figure 8) that discretizes the probability distribution function for each candidate quantized value based on the quantization interval to determine the probability distribution of the candidate quantized values. The estimation unit 248m may use a mathematical model in which the processed quantized values ​​are used as explanatory variables and the quantization interval is set as the objective variable to quantize the distribution function parameters, which are parameters of the probability distribution function that show the probability of occurrence of the candidate quantized values ​​to be processed, to determine the distribution function parameters of the probability distribution function from the processed quantized values ​​determined by the inverse quantization unit 244. The decoding device 20 may include a quantization unit 254 (Figure 8) that discretizes the probability distribution function for each candidate quantized value based on the quantization interval to determine the probability distribution of the candidate quantized values. As a result, the probability of occurrence of quantization candidate values ​​is expressed by a smaller number of distribution function parameters overall. Therefore, the computational complexity involved in calculating the probability of occurrence of quantization candidate values ​​can be reduced.

[0087] Furthermore, the quantization interval may be a vector containing N (where N is a predetermined integer of 2 or more) interval-specific quantization intervals for each interval. Each interval is a range obtained by dividing the range of input element values ​​into N parts. Since the interval-specific quantization interval may differ for each interval, quantized values ​​with different accuracies can be obtained depending on the interval.

[0088] Furthermore, the encoding device 10 may include a feature analysis unit that uses a mathematical model in which the signal values ​​of each pixel constituting the image are explanatory variables and a feature quantity containing multiple element values ​​is the target variable, and determines the element values ​​of the feature quantity from the signal values ​​as input element values. The decoding device 20 may include an information reconstruction unit that determines the signal value for each pixel from the element values ​​included in the feature, using a mathematical model in which a feature containing multiple element values ​​is the target variable and the signal value for each pixel constituting the image is the explanatory variable. This configuration allows for the encoding of feature quantities obtained from image data representing the signal value of each pixel. Furthermore, image data representing the signal value of each pixel can be reconstructed from the decoded feature quantities.

[0089] Furthermore, the entropy coding unit 130 may determine the probability of occurrence for each quantization candidate value code, which is a code indicating a quantization candidate value in a given coding unit, based on the probability distribution of quantization candidate values ​​for each quantization value of the input element value in that coding unit. The entropy coding unit 130 may also determine a codeword corresponding to the quantization candidate value code based on the probability of occurrence and generate a coding sequence that includes the codeword corresponding to the quantization value. Furthermore, the entropy decoding unit 242 may determine the probability of occurrence for each quantization candidate value code, which is a code indicating a quantization candidate value in a given decoding unit, based on the probability distribution of quantization candidate values ​​for each quantization value indicated by the quantization value code in that decoding unit. The entropy decoding unit 242 may also determine a codeword corresponding to the quantization candidate value code based on the determined probability of occurrence, and determine a corresponding quantization value code for each codeword constituting the coding sequence. This configuration allows for the determination of codewords for each coding unit or decoding unit according to the probability of occurrence of each quantization candidate value code, and the representation of quantization values ​​corresponding to the quantization candidate values ​​associated with the determined codewords. Therefore, the amount of information in the entire coding sequence for each coding unit or decoding unit can be reduced.

[0090] Furthermore, the encoding device 10 and decoding device 20 described above may each be equipped with a computer system internally. For example, the processor described above can be a component of a computer system. The processes of each of the above-described operations are stored in the form of a program on a computer-readable storage medium, and these operations are performed when the computer reads and executes this program. The computer system includes software such as an OS (Operating System), device drivers, and utility programs, as well as hardware such as peripheral devices. Furthermore, "computer-readable recording medium" refers to portable media such as magnetic disks, magneto-optical disks, ROMs (Read Only Memory), and semiconductor memory, as well as storage devices such as hard disks built into a computer system. Moreover, "computer-readable recording medium" may also include communication lines used when transmitting programs over networks such as the Internet or communication lines such as telephone lines, which dynamically hold programs for a short period of time, as well as volatile memory inside computer systems that act as servers or clients in such cases, which hold programs for a certain period of time. Furthermore, the above-described program may be for realizing a part of the functions described above, or it may be a so-called differential file (differential program) that can realize the above-described functions in combination with a program already recorded in the computer system.

[0091] Furthermore, part or all of the encoding device 10 or decoding device 20 in the above-described embodiment may be implemented as an integrated circuit such as an LSI (Large Scale Integration). Each functional block of the encoding device 10 or decoding device 20 may be individually implemented as a processor, or part or all of them may be integrated into a processor. In addition, the method of implementing the integrated circuit is not limited to LSIs; it may also be implemented using dedicated circuits or general-purpose processors. Furthermore, if an integrated circuit technology that can replace LSIs emerges due to advances in semiconductor technology, an integrated circuit using that technology may be used.

[0092] Although preferred embodiments of the present invention have been described above, the present invention is not limited to these embodiments and their modifications. Additions, omissions, substitutions, and other modifications are possible without departing from the spirit of the present invention. Furthermore, the present invention is not limited by the foregoing description, but is limited only by the appended claims.

[0093] According to the encoding device, decoding device, encoding method, decoding method, and program of each of the above embodiments, the quantization interval for the input element value to be processed and the probability distribution of candidate quantization values ​​are determined based on the processed quantized values. In entropy encoding or entropy decoding, a quantized value code for representing the quantized value can be determined based on the probability distribution of candidate quantization values. Therefore, even without providing information on the quantization interval from the encoding device, the decoding device can reconstruct the quantization interval used for quantization in the encoding device, and consequently the quantized value. This makes it possible to achieve a reduction in the amount of information involved in representing the quantized value. [Explanation of Symbols]

[0094] 1…Data processing system, 10…Encoding device, 20…Decoding device, 102…Processor, 104…Storage medium, 106…Drive unit, 108…Input / Output unit, 112…ROM, 114…RAM, 122…Input unit, 124…Quantization unit, 126…Quantized value storage unit, 128…Quantization interval estimation unit, 128m…Estimation unit, 130…Entropy coding unit, 132…Probability distribution estimation unit, 134…Second quantization unit, 242…Entropy decoding unit, 244…Inverse quantization unit, 246…Quantized value storage unit, 248…Quantization interval estimation unit, 248m…Estimation unit, 250…Output unit, 252…Probability distribution estimation unit, 254…Quantization unit

Claims

1. The process involves obtaining the quantization interval for quantizing the value to be processed, A process to obtain predicted values ​​based on quantized values ​​for processed values, A process to obtain the quantized value of the value to be processed based on the quantization interval, The process of entropy encoding a quantized sequence based on the predicted value and the quantized value of the value to be processed is performed. Based on the quantized values ​​of the element values ​​obtained by quantizing the element values ​​of the processed values, The predicted value of the quantization interval for the element values ​​of the value to be processed is predicted as a predicted value based on the quantized value. Encoding device.

2. The quantized values ​​for the processed values ​​are used as explanatory variables, and the quantization interval for quantizing the values ​​to be processed is used as the dependent variable. The quantization interval obtained using a mathematical model is then used as the quantization interval. The encoding device according to claim 1.

3. Based on the processed value, obtain the quantization interval for quantizing the value to be processed. The encoding device according to claim 1.

4. The values ​​subject to the processing are values ​​relating to pixels that make up the image. The encoding device according to claim 1.

5. The process involves dequantizing the sign of the quantized value to be processed and obtaining the quantization interval for determining the quantized value based on the processed quantized value, The process of obtaining predicted values ​​based on processed quantized values, A process of obtaining a quantized value sequence including the quantized value code by entropy decoding the coded sequence using the predicted value, The process of dequantizing the quantized value signs included in the quantized value sequence to obtain the quantized value is performed, Based on the element values ​​of the processed quantized values, The predicted value of the quantization interval for the element value to be processed is predicted as a predicted value based on the quantized value. Decoding device.

6. The processed quantized value is used as the explanatory variable, and the quantization interval obtained using a mathematical model, where the quantization interval for determining the quantized value by inverse quantization of the sign of the quantized value to be processed is used as the objective variable, is used as the quantization interval. The decoding device according to claim 5.

7. Based on the processed quantized value, the quantization interval is obtained to determine the quantized value by inverse quantizing the sign of the quantized value to be processed. The decoding device according to claim 5.

8. The aforementioned quantization value is a value relating to the pixels that make up the image. The decoding device according to claim 5.

Citation Information

Patent Citations

  • Image compression device, image decompression device, image compression / Decompression device, image compression method, image decompression method, program, and recording medium recording the program

    JP2003339047A

  • Moving image processor and moving image processing method

    JP2017127034A

  • Estimator for estimating a probability distribution of a quantization index

    US20140191888A1

  • Benefit-based bitrate distribution for video encoding

    WO2020044135A1