What Is an Acquisition Number?
Golomb code is a lossless data compression method invented by mathematician Solomon W. Golomb in the 1960s. Golomb encoding can only encode non-negative integers. When the probability of occurrence of symbols in the symbol table conforms to Geometric Distribution, the use of Golomb encoding can achieve the best results, which means that Golomb encoding is more suitable for small numbers and large numbers. A code with a high probability of digital appearance. It uses shorter code lengths to encode smaller numbers, and longer code lengths to encode larger numbers.
- Golomb coding is a kind of block coding, which requires a positive integer parameter m, and then group the numbers to be coded in m, as shown in Figure 1.
- Set M = 10. therefore
- For example, for parameters
- When the probability distribution of an integer is unknown, the optimal parameters of the Golomb-Rice encoder cannot be determined. Therefore, in many applications, a two-pass approach is used: First, a block of data is scanned to estimate the probability density function (PDF) of the data. The Golomb-Rice parameters are then determined based on the estimated PDF. A simpler variation of this method is to assume that PDF belongs to a parameterized family, estimate PDF parameters from the data, and then determine to calculate the best Golomb-Rice parameters. This is the method used in most applications discussed below.
- Another way to efficiently encode integer data whose PDF is unknown or changing is to use a backward adaptive encoder. Run-Length Golomb-Rice (RLGR) is implemented using a very simple algorithm that adjusts Golomb-Rice parameters up or down based on the last coded symbol. The decoder can follow the same rules to track the changes of the encoding parameters, so there is no need to transmit any auxiliary information, only the encoded data needs to be transmitted. Assuming the generalized Gaussian PDF covers various statistical data seen in the data, such as prediction errors or transform coefficients in multimedia codecs, the RLGR encoding algorithm can perform well in such applications.
- The compiled and decoded pseudo-code is as follows:
UnaryEncode (n) { while (n> 0) { WriteBit (1); n--; } WriteBit (0);} UnaryDecode () { n = 0; while (ReadBit (1) == 1) { n ++;} return n; }