Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The Vandermonde matrix is created by following the steps as specified in section 2.2.2.2.2.
All computations needed to perform encoding and decoding of the data are based on the finite field GF(28). The following shows the tables for exp() and log() over a GF(28).
Figure 8: Galois fields table in hexadecimal and decimal (log and exp)
The following is a 10 * 6 size Vandermonde matrix created from the Galois Field tables.
Figure 9: Vandermonde matrix table in hexadecimal, using GF28
It is then reduced to the following identity matrix by using standard linear algebra.
Figure 10: Vandermonde identity matrix table in hexadecimal, using GF28
In this example, a group of 6 RTP packets labeled SourcePacket0 through SourcePacket5 are used to create 4 FEC packets labeled FECPacket0 through FECPacket3.
The reduced form of the previous identity matrix is used as the generator matrix and is subsequently used to generate 10 encoded packets. The first 6 encoded packets will be identical to SourcePacket0 through SourcePacket5, and the last 4 encoded packets will be the FEC packets.
Figure 11: Vandermonde-generated data equation using GF28 (definition)
The server multiplies the generator matrix, which has 10 rows and 6 columns, with a source matrix with 6 rows and 8 columns. Each row in the source matrix corresponds to one of the 6 RTP packets that will be encoded, and each column is 1 byte from the packet on the corresponding row. To reduce the size of the matrices, this example uses 8-byte packets. Each byte is expressed as a hexadecimal number in the following illustration.
The result of the matrix multiplication is another matrix with 10 rows and 6 columns, each row corresponding to an encoded RTP packet. The first 6 rows are identical to the RTP packets in the source matrix, and the last 4 rows are the FEC RTP packets.
Figure 12: Vandermonde-generated data equation using GF28 (implementation)
A client that has lost some RTP packets arranges the RTP packets that it received as the result matrix, and multiplies it with the inverse of the identity matrix to obtain the source matrix.