# Averting BER Floor with Iterative Source and Channel Decoding for Layered Steered Space-Time Codes
## 3 Source Encoding and Soft-Bit Source Decoding
This high compression efficiency is owing to the 35 intra prediction modes, whereas the intra prediction modes are limited to 9 in the H.264 standard. Moreover, an improved motion prediction technique is adopted in the H.265 as compared to the H.264 codec. Skip mode and direct mode estimations in the H.265 also enhance the performance in comparison to the H.264 standard. SBSD exploits the natural redundancy to improve the convergence behavior of iterative decoding. SBSD gleans the residual redundancy for generating extrinsic LLRs, and hence beneficially transforms the coded video into short time frames, labelled as index \(i\)[7]. This SBSD operation results in significant performance improvement of the iteratively decoded system and is a modified version of the SBSD presented in [47; 48]. More specifically, a parameter set \(Y_{i}\) is constituted enclosing \(N\) coded patterns from each of the \(i\) video frames. The extrinsic LLR is computed for each information bit \(y\) with the help of all other instants of \(Y_{i}\). Generally, the extrinsic LLR for each bit is given by Equation (2) as expressed in [7]. \[L_{e}^{1}(y_{i,n}\ (\lambda))=log\frac{\sum_{m=1,\ m\
eq\lambda}^{M}P[y_{i,n}\ (m)|y_{i,n}\ ( \lambda)=+1]}{\sum_{m=1,\ m\
eq\lambda}^{M}P[y_{i,n}\ (m)|y_{i,n}\ ( \lambda)=-1]} \tag{2}\]  
In case the extrinsic LLRs are not known for reliabilities, we proceed with the a priori LLR-values for all such contributing bits. This interesting interplay between the extrinsic and a priori LLR-values is also visible in Figure 1, precisely from which it is inferable that these values keep on interchanging at successive iterations and time slots. For a clearer understanding of the proposed scheme, we separately investigate the effects of various SBC schemes on the H.265 source coded stream. These SBC schemes differ only in the value of \(d_{H,\text{min}}\). We designate the SBC schemes having \(d_{H,\text{min}}\geq 2\) as the optimized SBC schemes, and hence refer to those as LSSTC-SP-URC-SBCs. For the SBC with \(d_{H,\text{min}}=1\) (un-optimized), the arrangement is referred as LSSTC-SP-URC-SBC\({}^{+}\). More specifically, the SBC schemes are distinguished from each other based on the \(d_{H,\text{min}}\) value. Different SBC schemes are presented in Table 2, each having different \(d_{H,\text{min}}\) value. The SBC algorithm used here is based on the ideas in [6; 49]. The SBC\({}_{[K,N]}\) basically converts the _K-bit_ source symbols to \(N=(K+P)\)_-bit_ information symbols. Here, \(P\) represents the number of redundant bits per source symbol. Each of these symbols will have a different probability of occurrence. The rationale of using SBC in the complex three-stage system is that it provides artificial redundancy in the source encoded data. The beauty of SBC is that it becomes very beneficial in the iterative decoding process and warrants an infinitesimal BER. More specifically, the convergence capability of the proposed three-stage system is enhanced with the optimized SBC schemes after multiple iterations. It is to be noted that there are three iterations in each \(I_{sys}\) as discussed above. For the LSSTC-SP-URC-SBC\({}^{*}_{[2,6]}\) benchmarker scheme, only those decimal symbols are included in Table 2 that have a \(d_{H,\text{min}}\) of 1 between them. The input 2-bits symbols having \(d_{H,\text{min}}\) of 1, are converted to 6-bits symbols by simply placing zeros as redundant bits. For the other schemes with \(d_{H,\text{min}}\geq 2\), the algorithm works by gradually increasing \(d_{H,\text{min}}\) with the increase in both \(K\) and \(N\) values. However, the overall code rate is kept consistent in all of the schemes. This SBC algorithm works in two steps for placing \(P=(m\times K)\) redundant bits, where \(m\geq 1\). In the first step, \(I=[(m-1)\times K]\) redundant bits \(r_{t}(i)\), such that \(i=1,2,\ldots,I\) are appended by the addition of \(K\) bits \((m-1)\) times to the original symbol. Hence, each symbol will be converted to \([(m-1)\times K]\) bits.