# A High Efficiency Multistage Coder for Lossless Audio Compression using OLS+ and CDCCR Method
## 7 Adaptive Golomb Code and Context Adaptive Binary Arithmetic Coder
\begin{table}
\begin{tabular}{c c c c c c c} \hline \hline
**File** & \begin{tabular}{c} **Zero Order** \\ **Entropy** \\ \end{tabular} & \begin{tabular}{c} **First-Order** \\ **Entropy** \\ \end{tabular} & \begin{tabular}{c} **Golomb** \\ **Code 1** \\ \end{tabular} & \begin{tabular}{c} **CABAC 2** \\ \end{tabular} & \
\begin{tabular}{c} **CABAC 3** \\ \end{tabular} &
\begin{tabular}{c} **Our** \\ **Proposition** \\ \end{tabular} \\ \hline ATrain & 11.894 & 7.664 & 7.370 & 7.210 & 7.135 & 7.134 \\ \hline BeautySlept & 11.942 & 8.712 & 8.502 & 8.346 & 8.266 & 8.265 \\ \hline chanchan & 14.214 & 10.181 & 9.959 & 9.795 & 9.728 & 9.711 \\ \hline death2 & 14.559 & 6.323 & 5.840 & 5.779 & 5.652 & 5.642 \\ \hline experiencia & 14.856 & 11.285 & 11.106 & 10.945 & 10.879 & 10.874 \\ \hline female\_spech & 12.537 & 5.580 & 4.637 & 4.611 & 4.496 & 4.493 \\ \hline FloorEssence & 14.708 & 10.001 & 9.506 & 9.342 & 9.279 & 9.267 \\ \hline ItCouldBeSweet & 15.125 & 9.262 & 8.544 & 8.383 & 8.308 & 8.307 \\ \hline Layla & 13.753 & 10.153 & 9.811 & 9.649 & 9.574 & 9.573 \\ \hline LifeShatters & 14.830 & 10.946 & 11.030 & 10.871 & 10.786 & 10.786 \\ \hline macabre & 13.852 & 9.506 & 9.314 & 9.159 & 9.082 & 9.082 \\ \hline MaleSpeech & 12.421 & 5.574 & 4.767 & 4.712 & 4.594 & 4.589 \\ \hline SinceAlways & 14.652 & 11.200 & 10.615 & 10.456 & 10.379 & 10.377 \\ \hline thear1 & 15.128 & 11.847 & 11.644 & 11.487 & 11.405 & 11.406 \\ \hline TomsDiner & 12.654 & 7.752 & 7.356 & 7.188 & 7.116 & 7.114 \\ \hline velvet & 13.884 & 10.773 & 10.243 & 10.068 & 10.002 & 9.999 \\ \hline
**average** & **13.813** & **9.172** & **8.765** & **8.625** & **8.543** & **8.539** \\ \hline \hline \end{tabular}  
* after using Golomb code, 2 using long-term adaptation, 3 using long- and medium-term adaptation.  
\end{table} 
Table 3: Entropy and bit-average values for several encoder settings. for which the first-order entropy value is noticeably smaller than the zero order entropy (see the third column in Table 3). It should be noted here that it is extremely difficult to determine the total entropy \(H(S)\) because it is difficult to determine the order of the Markov model, which will take into account all the interdependencies between the individual data (an example is the use of linear prediction of the order of \(r=1000\) in the first degree of NLMS proposed here the cascading prediction technique). Usually, instead of a static Huffman code, the adaptive Rice coder [36] and the multivalued arithmetic coder with quantisation are used for efficient coding of prediction errors [15]. This allows reducing the size of the alphabet as a result of which a part of less-significant bits representing the value of prediction errors is saved without further coding [37]. The method proposed here has a similar implementation complexity compared to the one described in the work [37], where simple mapping function is used. That indicates currently the best Rice code parameter, which corresponds statistically to the most suitable fit (in the medium-term sense) to the distribution used by the coder. Our solution uses an adaptive Golomb code, whose output data is additionally subjected to compression using two context adaptive binary arithmetic coders (CABAC). Each of these coders has its own way of determining the number of the context with which the individual probability distribution of bits 0 and 1 is associated. This solution is faster than used in work [16] while it is characterised by greater flexibility in adjusting to changes in signal features over time. The combination of adaptive versions of the arithmetic encoder and Golomb code allows for taking into account changes in the characteristics of the probability distribution of prediction errors over in time, which involves into a further decrease the bit average.