OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license | 4 * Use of this source code is governed by a BSD-style license |
5 * that can be found in the LICENSE file in the root of the source | 5 * that can be found in the LICENSE file in the root of the source |
6 * tree. An additional intellectual property rights grant can be found | 6 * tree. An additional intellectual property rights grant can be found |
7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
9 */ | 9 */ |
10 | 10 |
11 #ifndef WEBRTC_MODULES_VIDEO_CODING_FEC_TABLES_XOR_H_ | 11 #ifndef WEBRTC_MODULES_VIDEO_CODING_FEC_RATE_TABLE_H_ |
12 #define WEBRTC_MODULES_VIDEO_CODING_FEC_TABLES_XOR_H_ | 12 #define WEBRTC_MODULES_VIDEO_CODING_FEC_RATE_TABLE_H_ |
13 | 13 |
14 // This is a private header for media_opt_util.cc. | 14 // This is a private header for media_opt_util.cc. |
15 // It should not be included by other files. | 15 // It should not be included by other files. |
16 | 16 |
17 namespace webrtc { | 17 namespace webrtc { |
18 | 18 |
19 // Table for Protection factor (code rate) of delta frames, for the XOR FEC. | 19 // Table for Protection factor (code rate) of delta frames, for the XOR FEC. |
20 // Input is the packet loss and an effective rate (bits/frame). | 20 // Input is the packet loss and an effective rate (bits/frame). |
21 // Output is array kCodeRateXORTable[k], where k = rate_i*129 + loss_j; | 21 // Output is array kFecRateTable[k], where k = rate_i*129 + loss_j; |
22 // loss_j = 0,1,..128, and rate_i varies over some range. | 22 // loss_j = 0,1,..128, and rate_i varies over some range. |
23 static const int kSizeCodeRateXORTable = 6450; | 23 // TODO(brandtr): Consider replacing this big static table with a closed-form |
24 static const unsigned char kCodeRateXORTable[kSizeCodeRateXORTable] = { | 24 // expression instead. |
| 25 static const int kFecRateTableSize = 6450; |
| 26 static const unsigned char kFecRateTable[kFecRateTableSize] = { |
25 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 27 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
26 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | 28 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
27 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, | 29 0, 0, 0, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, |
28 11, 11, 11, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, | 30 11, 11, 11, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, |
29 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, | 31 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, |
30 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, | 32 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, |
31 39, 39, 39, 39, 39, 39, 51, 51, 51, 51, 51, 51, 51, 51, 51, | 33 39, 39, 39, 39, 39, 39, 51, 51, 51, 51, 51, 51, 51, 51, 51, |
32 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, | 34 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, |
33 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, | 35 51, 51, 51, 51, 51, 51, 51, 51, 51, 0, 0, 0, 0, 0, 0, |
34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, | 36 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, |
(...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
449 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 451 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
450 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 452 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
451 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 453 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
452 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 454 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
453 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 455 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
454 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, | 456 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, |
455 }; | 457 }; |
456 | 458 |
457 } // namespace webrtc | 459 } // namespace webrtc |
458 | 460 |
459 #endif // WEBRTC_MODULES_VIDEO_CODING_FEC_TABLES_XOR_H_ | 461 #endif // WEBRTC_MODULES_VIDEO_CODING_FEC_RATE_TABLE_H_ |
OLD | NEW |