webrtc/modules/video_coding/main/source/fec_tables_xor.h

6479 lines
29 KiB
C++

/*
* Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
*
* Use of this source code is governed by a BSD-style license
* that can be found in the LICENSE file in the root of the source
* tree. An additional intellectual property rights grant can be found
* in the file PATENTS. All contributing project authors may
* be found in the AUTHORS file in the root of the source tree.
*/
#ifndef WEBRTC_MODULES_VIDEO_CODING_SOURCE_FEC_TABLES_XOR_H_
#define WEBRTC_MODULES_VIDEO_CODING_SOURCE_FEC_TABLES_XOR_H_
namespace webrtc
{
// Table for Protection factor (code rate) of delta frames, for the XOR FEC.
// Input is the packet loss and average bits/frame (bitRate/frame_rate):
// i.e., codeRateXORTable[k] where k = rate_i*129 + loss_j; loss_j=0,1,..128,
// and rate_i varies over some range
const unsigned char VCMCodeRateXORTable[6450] = {
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
0,
0,
0,
0,
0,
0,
0,
0,
31,
31,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
0,
0,
0,
31,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
0,
0,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
25,
25,
25,
25,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
0,
0,
0,
0,
25,
25,
25,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
51,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
0,
0,
0,
0,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
0,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
42,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
0,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
0,
0,
0,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
36,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
0,
0,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
31,
31,
31,
31,
31,
31,
31,
31,
31,
31,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
28,
28,
28,
28,
28,
28,
28,
28,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
0,
0,
28,
28,
28,
28,
28,
28,
28,
28,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
56,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
0,
0,
25,
25,
25,
25,
25,
25,
25,
51,
51,
51,
51,
51,
51,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
0,
25,
25,
25,
25,
25,
25,
51,
51,
51,
51,
51,
51,
51,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
23,
23,
23,
23,
23,
23,
23,
46,
46,
46,
46,
46,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
0,
23,
23,
23,
23,
23,
23,
23,
46,
46,
46,
46,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
0,
23,
23,
23,
23,
23,
23,
46,
46,
46,
46,
46,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
69,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
0,
21,
21,
21,
21,
21,
42,
42,
42,
42,
42,
42,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
21,
21,
21,
21,
21,
42,
42,
42,
42,
42,
42,
63,
63,
63,
63,
63,
63,
63,
63,
63,
63,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
106,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
19,
19,
19,
19,
19,
39,
39,
39,
39,
58,
58,
58,
58,
58,
58,
58,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
0,
19,
19,
19,
19,
39,
39,
39,
39,
39,
58,
58,
58,
58,
58,
58,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
78,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
98,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
117,
0,
18,
18,
18,
18,
36,
36,
36,
54,
54,
54,
54,
54,
54,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
18,
18,
18,
18,
36,
36,
36,
54,
54,
54,
54,
54,
54,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
18,
18,
18,
18,
36,
36,
36,
54,
54,
54,
54,
54,
54,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
91,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
17,
17,
17,
17,
34,
34,
51,
51,
51,
51,
51,
68,
68,
68,
68,
68,
68,
68,
68,
68,
68,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
0,
17,
17,
17,
17,
34,
34,
51,
51,
51,
51,
51,
68,
68,
68,
68,
68,
68,
68,
68,
68,
68,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
119,
0,
15,
15,
15,
31,
31,
31,
47,
47,
47,
47,
63,
63,
63,
63,
63,
63,
63,
63,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
15,
15,
15,
31,
31,
31,
47,
47,
47,
47,
63,
63,
63,
63,
63,
63,
63,
63,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
79,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
95,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
111,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
15,
15,
15,
30,
30,
30,
45,
45,
45,
60,
60,
60,
60,
60,
60,
60,
60,
75,
75,
75,
75,
75,
75,
75,
75,
75,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
0,
15,
15,
15,
30,
30,
30,
45,
45,
45,
60,
60,
60,
60,
60,
60,
60,
75,
75,
75,
75,
75,
75,
75,
75,
75,
75,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
0,
15,
15,
15,
30,
30,
45,
45,
45,
45,
60,
60,
60,
60,
60,
60,
60,
75,
75,
75,
75,
75,
75,
75,
75,
75,
75,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
90,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
105,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
0,
14,
14,
28,
28,
28,
42,
42,
56,
56,
56,
56,
56,
70,
70,
70,
70,
70,
70,
70,
70,
70,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
14,
14,
28,
28,
28,
42,
42,
56,
56,
56,
56,
56,
70,
70,
70,
70,
70,
70,
70,
70,
70,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
113,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
13,
13,
26,
26,
40,
40,
40,
40,
53,
53,
67,
67,
67,
67,
67,
67,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
0,
13,
13,
26,
26,
40,
40,
40,
40,
53,
53,
67,
67,
67,
67,
67,
67,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
80,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
93,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
107,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
120,
0,
12,
12,
25,
25,
38,
38,
38,
38,
63,
63,
63,
63,
63,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
12,
12,
25,
25,
38,
38,
38,
38,
63,
63,
63,
63,
63,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
76,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
89,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
102,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
114,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
12,
12,
24,
24,
36,
36,
48,
48,
48,
48,
60,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
0,
12,
12,
24,
24,
36,
36,
48,
48,
48,
48,
60,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
0,
12,
12,
24,
24,
36,
48,
48,
48,
48,
48,
60,
72,
72,
72,
72,
72,
72,
72,
72,
72,
72,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
85,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
97,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
109,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
0,
11,
11,
23,
34,
34,
34,
46,
46,
57,
57,
57,
57,
57,
57,
69,
69,
69,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
11,
11,
23,
34,
34,
34,
46,
46,
57,
57,
57,
57,
57,
57,
69,
69,
69,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
81,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
92,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
104,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
115,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
127,
0,
11,
11,
22,
33,
33,
44,
44,
44,
55,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
66,
88,
88,
88,
88,
88,
88,
88,
88,
88,
88,
88,
88,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
99,
110,
110,
110,
110,
110,
110,
110,
110,
110,
110,
110,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
121,
};
} // namespace webrtc
#endif // WEBRTC_MODULES_VIDEO_CODING_SOURCE_FEC_TABLES_XOR_H_