FEC: Update to packets masks (FEC generator matrix) in fec_private_tables.h

A set of the packet masks (up 10x10 size) are modified for the following reasons:

1) have more even column and row degree (number of 1 bits), when possible.

2) if cases where the column degree cannot be constant across source packets, placed the extra 1 bit in the first packet column (so little more protection on 1st partition), as opposed to having some ~middle source packet have the extra bit.

3) in some cases, made the mask a little more sparse/reduced the overlap.

Overall the average recovery is a little better with these masks.

Mask sizes above 10 will be updated in future changelist.
Review URL: http://webrtc-codereview.appspot.com/305001

git-svn-id: http://webrtc.googlecode.com/svn/trunk@1113 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
marpan@webrtc.org 2011-12-06 18:50:11 +00:00
parent 4a8b1eaf6e
commit 1d34212a45

View File

@ -35,32 +35,32 @@ namespace
const WebRtc_UWord8 mask10_2[4] =
{
0xee, 0x00,
0x99, 0xc0
0xaa, 0x80,
0xd5, 0x40
};
const WebRtc_UWord8 mask10_3[6] =
{
0xe6, 0x00,
0x95, 0x80,
0x78, 0x40
0xa4, 0x40,
0xc9, 0x00,
0x52, 0x80
};
const WebRtc_UWord8 mask10_4[8] =
{
0xea, 0x00,
0x33, 0x80,
0xa4, 0xc0,
0x1d, 0x40
0xca, 0x00,
0x32, 0x80,
0xa1, 0x40,
0x55, 0x00
};
const WebRtc_UWord8 mask10_5[10] =
{
0xc6, 0x00,
0x23, 0x80,
0x1a, 0x40,
0x24, 0xc0,
0x71, 0x00
0xca, 0x00,
0x32, 0x80,
0xa1, 0x40,
0x55, 0x00,
0x08, 0xc0
};
const WebRtc_UWord8 mask10_6[12] =
@ -77,7 +77,7 @@ namespace
{
0x46, 0x00,
0x33, 0x00,
0x10, 0xc0,
0x80, 0xc0,
0x0c, 0x40,
0x28, 0x80,
0x94, 0x00,
@ -98,15 +98,15 @@ namespace
const WebRtc_UWord8 mask10_9[18] =
{
0x4e, 0x00,
0xe3, 0x00,
0x81, 0xc0,
0x4c, 0x00,
0x23, 0x00,
0x88, 0xc0,
0x21, 0x40,
0x52, 0x80,
0xb4, 0x00,
0x26, 0x80,
0x58, 0x40,
0x19, 0x80
0x94, 0x00,
0x26, 0x00,
0x48, 0x40,
0x91, 0x80
};
const WebRtc_UWord8 mask11_1[2] =
@ -24014,8 +24014,8 @@ namespace
const WebRtc_UWord8 mask4_2[4] =
{
0xe0, 0x00,
0xd0, 0x00
0xc0, 0x00,
0xb0, 0x00
};
const WebRtc_UWord8 mask4_3[6] =
@ -24040,21 +24040,21 @@ namespace
const WebRtc_UWord8 mask5_2[4] =
{
0xe0, 0x00,
0x98, 0x00
0xa8, 0x00,
0xd0, 0x00
};
const WebRtc_UWord8 mask5_3[6] =
{
0xe0, 0x00,
0x90, 0x00,
0x58, 0x00
0xb0, 0x00,
0xc8, 0x00,
0x50, 0x00
};
const WebRtc_UWord8 mask5_4[8] =
{
0xe0, 0x00,
0x98, 0x00,
0xc8, 0x00,
0xb0, 0x00,
0x50, 0x00,
0x28, 0x00
};
@ -24075,15 +24075,15 @@ namespace
const WebRtc_UWord8 mask6_2[4] =
{
0xe8, 0x00,
0x9c, 0x00
0xa8, 0x00,
0xd4, 0x00
};
const WebRtc_UWord8 mask6_3[6] =
{
0x98, 0x00,
0x4c, 0x00,
0x34, 0x00
0xd0, 0x00,
0x68, 0x00,
0xa4, 0x00
};
const WebRtc_UWord8 mask6_4[8] =
@ -24096,19 +24096,19 @@ namespace
const WebRtc_UWord8 mask6_5[10] =
{
0x58, 0x00,
0x34, 0x00,
0x2c, 0x00,
0xa8, 0x00,
0x84, 0x00,
0x64, 0x00,
0x90, 0x00,
0xc4, 0x00
0x58, 0x00
};
const WebRtc_UWord8 mask6_6[12] =
{
0x98, 0x00,
0x64, 0x00,
0x54, 0x00,
0x1c, 0x00,
0x50, 0x00,
0x14, 0x00,
0xa8, 0x00,
0xe0, 0x00
};
@ -24120,29 +24120,29 @@ namespace
const WebRtc_UWord8 mask7_2[4] =
{
0xcc, 0x00,
0x3a, 0x00
0xd4, 0x00,
0xaa, 0x00
};
const WebRtc_UWord8 mask7_3[6] =
{
0xcc, 0x00,
0x96, 0x00,
0x74, 0x00
0xd0, 0x00,
0xaa, 0x00,
0x64, 0x00
};
const WebRtc_UWord8 mask7_4[8] =
{
0x8c, 0x00,
0x38, 0x00,
0x26, 0x00,
0x4a, 0x00
0xd0, 0x00,
0xaa, 0x00,
0x64, 0x00,
0x1c, 0x00
};
const WebRtc_UWord8 mask7_5[10] =
{
0xac, 0x00,
0x34, 0x00,
0x0c, 0x00,
0xb0, 0x00,
0x1a, 0x00,
0xc4, 0x00,
0x62, 0x00
@ -24150,21 +24150,21 @@ namespace
const WebRtc_UWord8 mask7_6[12] =
{
0x26, 0x00,
0xb0, 0x00,
0x1c, 0x00,
0x52, 0x00,
0x0a, 0x00,
0xc8, 0x00
0x8c, 0x00,
0x4a, 0x00,
0x64, 0x00,
0xd0, 0x00,
0xa0, 0x00,
0x32, 0x00
};
const WebRtc_UWord8 mask7_7[14] =
{
0x6a, 0x00,
0x4a, 0x00,
0x94, 0x00,
0x1a, 0x00,
0xc4, 0x00,
0x0c, 0x00,
0x28, 0x00,
0xc2, 0x00,
0x34, 0x00
};
@ -24176,53 +24176,53 @@ namespace
const WebRtc_UWord8 mask8_2[4] =
{
0xce, 0x00,
0xb9, 0x00
0xaa, 0x00,
0xd5, 0x00
};
const WebRtc_UWord8 mask8_3[6] =
{
0x8d, 0x00,
0x96, 0x00,
0x78, 0x00
0xc5, 0x00,
0x92, 0x00,
0x6a, 0x00
};
const WebRtc_UWord8 mask8_4[8] =
{
0x8e, 0x00,
0x45, 0x00,
0xb4, 0x00,
0x6a, 0x00,
0x36, 0x00,
0xd1, 0x00
0x89, 0x00
};
const WebRtc_UWord8 mask8_5[10] =
{
0x55, 0x00,
0xaa, 0x00,
0xa5, 0x00,
0x62, 0x00,
0x3c, 0x00
0x8c, 0x00,
0x92, 0x00,
0x2b, 0x00,
0x51, 0x00,
0x64, 0x00
};
const WebRtc_UWord8 mask8_6[12] =
{
0x51, 0x00,
0xa2, 0x00,
0x95, 0x00,
0x4a, 0x00,
0x30, 0x00,
0x2c, 0x00
0xa1, 0x00,
0x52, 0x00,
0x91, 0x00,
0x2a, 0x00,
0xc4, 0x00,
0x4c, 0x00
};
const WebRtc_UWord8 mask8_7[14] =
{
0x15, 0x00,
0x8a, 0x00,
0xc2, 0x00,
0x25, 0x00,
0x62, 0x00,
0x58, 0x00,
0x0e, 0x00,
0x83, 0x00
0x8c, 0x00,
0xa3, 0x00
};
const WebRtc_UWord8 mask8_8[16] =
@ -24244,32 +24244,32 @@ namespace
const WebRtc_UWord8 mask9_2[4] =
{
0xce, 0x00,
0x39, 0x80
0xaa, 0x80,
0xd5, 0x00
};
const WebRtc_UWord8 mask9_3[6] =
{
0xac, 0x00,
0x47, 0x00,
0x32, 0x80
0xa5, 0x00,
0xc8, 0x00,
0x52, 0x80
};
const WebRtc_UWord8 mask9_4[8] =
{
0xcc, 0x00,
0x2b, 0x00,
0x32, 0x80,
0x25, 0x80
0xa2, 0x00,
0xc9, 0x00,
0x52, 0x80,
0x24, 0x80
};
const WebRtc_UWord8 mask9_5[10] =
{
0x8c, 0x80,
0x27, 0x00,
0x32, 0x80,
0x61, 0x80,
0x5c, 0x00
0x8c, 0x00,
0x25, 0x00,
0x92, 0x80,
0x41, 0x80,
0x58, 0x00
};
const WebRtc_UWord8 mask9_6[12] =
@ -24290,14 +24290,14 @@ namespace
0x12, 0x80,
0x58, 0x00,
0x28, 0x80,
0x34, 0x00
0xb4, 0x00
};
const WebRtc_UWord8 mask9_8[16] =
{
0x2c, 0x00,
0x91, 0x00,
0xc0, 0x80,
0x40, 0x80,
0x06, 0x80,
0xc8, 0x00,
0x45, 0x00,
@ -24308,7 +24308,7 @@ namespace
const WebRtc_UWord8 mask9_9[18] =
{
0x4c, 0x00,
0x66, 0x00,
0x62, 0x00,
0x91, 0x00,
0x42, 0x80,
0xa4, 0x00,