H.264 SVC
Source Coding Channel Coding Channel
Figure. 4 : Overall System Structure
3.1 Linear UEP Precoder
In our system, the main objective for Precoder is providing unequal erasure protection ability, and there are two different classes of codes can be candidates, block codes and convolutional codes. This section we will describe differences between block codes and convolutional codes, and summarize which of them will be the better choice for our system design.
We will only operate our convolutional codes on the GF2 , its decoding complexity is lower than other GFp. Unlike convolutional codes, we observe that for linear block codes, information size for different protection layer is quite differently, it means if we chose linear block codes to be our Precoder design, we have to separate our SVC input streams into different protection layers with different size, and
8
higher protection ability with lower ratio of all information size. Contrary to the linear block codes, convolutional codes can provide different protection layers with the same size.
In addition, convolution code does not restrict its codeword length but only ratio of input to output sequence length, which means that it is more flexible to couple with codeword size of rateless code. On the other hand, block size of a linear block codes is fixed by given a n, k-concatenation linear block code. The constraint made the design of interleaver much harder.
Error correction ability to convolution codes is positive correlated to memory size. The more memories used in convolutional codes, usually the higher recover ability it has. At the mean time, the decoding complexity for convolutional codes grows exponentially. That is the reason why the average separation value of convolution code is lower than the linear block codes because the limitation of memory used, and the average code rate of the convolution code is higher than the linear block code.
For equally protection layer size to couple with source coding system design, we intend to use convolutional codes for our Precoder, and we choose convolutional codes for following experiments according to coding tables form [6], which provides good performance with UEP ability. [Table. 1 : Parameters for convolutional codes in our system design]
Table. 1 : Parameters for convolutional codes in our system design
3.2 Rateless UEP Postcoder
The performance of Rateless Coder is determined by two factors,
1. Rx Symbol Inflation Ratio with respect to Rateless Encoder Input.
2. Design of degree distribution in Rateless Code.
If we define Δ to be Rx Symbol Inflation Ratio with respect to Rateless Encoder Input, which is rateless overhead, and ξΔ be the failure probability of Rateless code as Rx Symbol Inflation Ratio with respect to Rateless Encoder Input. By now we know that S,… can be decoded iff
ξΔ ⋅ n ≤ σ− 1
9 Hence, probability of successful decoding of S is
pΔ = P ξΔ =σ− 1
n = pξdξ
ౢ
If ξΔ has negligible variance, then
pΔ 1 iff σ− 1
n ≤ ξ Δ 0 otherwise
The curve of the failure rate has usually shape similar to the one in [Figure. 5 : LT decoding result], x-axis represents the value of Δ and y-axis represents the failure rate.
Figure. 5 : LT decoding result
In our experiments, we observed that standard deviation of decoding failure rate for waterfall region is quite large, which implies the worst case of decoding result may be very terrible, we call that bimodal feature for decoding results. In the [Figure. 5 : LT decoding result], three dotted horizontal lines are cordons for decoding ability with respect to each UEP layer in the Precoder. Once error probability above the line, errors may not be recovered in the specific UEP layer, hence our design criteria for rateless coder is trying to find some degree distributions with trifling bimodal feature or lower failure rate to minimize the area above cordons.
3.3 Interleaver and Multiplexer
In our system, the interleaver is a bridge between the Precoder and the Postcoder, the main objective of using interleaver is trying to maintain the UEP features after cascaded two coders, interleaver is a permutation table relocating erasure indices and avoiding burst erasure event. In the decoding process, the statistical properties of rate-less Postcoder is not ergodic because the erasure probability of each input vector
10
is highly correlated then causes burst error events which Precoder cannot afford. Fortunately, our ensemble process of Postcoder are uncorrelated, it implies that we can design an interleaver with properties which are suitable for our Precoder.
Also, to minimize our decoding time procrastination and coupled with parameters in the source coding process, the interleaver has to adjust its size to one GOP, the minimal decodable unit of Scalable Video Coding, which means
= 1
⋅
is the code rate of Precoder.
Example
The first approach of our interleaver performs permutation to relocate the index of input symbol sequence and avoiding burst erasure event, we apply a classic block interleaver: the input data is written along columns and read along rows. The design of our block interleaver is different from traditional one since our Postcoder has UEP ability, and we have to keep this feature after interleaving.
An intuitive design is separating interleaver into several regions corresponded to our UEP layer counts of Postcoder, each region performs indices relocation individually. In other words, the specific region contains all indices from the same UEP layer of Postcoder.
݉ܽݔሼܩܱܲܵ݅ݖ݁ሽ
ܴ ⋅ ݇2
݇2
Figure. 6 : A simple example for Interleaver
11
[Figure. 6 : A simple example for Interleaver] gives an example that rate-less Postcoder has two different protection ability parts, the more significant part has lower average erasure probability compare with the less significant part. To keep this feature after interleaving, we also separate the interleaver into two different regions, called more significant region and the less significant region with respect to the Postcoder.
12