Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(53)

Side by Side Diff: source/libvpx/vp9/common/vp9_quant_common.c

Issue 592203002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « source/libvpx/vp9/common/vp9_quant_common.h ('k') | source/libvpx/vp9/common/vp9_reconinter.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2010 The WebM project authors. All Rights Reserved. 2 * Copyright (c) 2010 The WebM 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
(...skipping 29 matching lines...) Expand all
40 349, 354, 359, 364, 369, 374, 379, 384, 40 349, 354, 359, 364, 369, 374, 379, 384,
41 389, 395, 400, 406, 411, 417, 423, 429, 41 389, 395, 400, 406, 411, 417, 423, 429,
42 435, 441, 447, 454, 461, 467, 475, 482, 42 435, 441, 447, 454, 461, 467, 475, 482,
43 489, 497, 505, 513, 522, 530, 539, 549, 43 489, 497, 505, 513, 522, 530, 539, 549,
44 559, 569, 579, 590, 602, 614, 626, 640, 44 559, 569, 579, 590, 602, 614, 626, 640,
45 654, 668, 684, 700, 717, 736, 755, 775, 45 654, 668, 684, 700, 717, 736, 755, 775,
46 796, 819, 843, 869, 896, 925, 955, 988, 46 796, 819, 843, 869, 896, 925, 955, 988,
47 1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336, 47 1022, 1058, 1098, 1139, 1184, 1232, 1282, 1336,
48 }; 48 };
49 49
50 #if CONFIG_VP9_HIGHBITDEPTH
51 static const int16_t dc_qlookup_10[QINDEX_RANGE] = {
52 4, 9, 10, 13, 15, 17, 20, 22,
53 25, 28, 31, 34, 37, 40, 43, 47,
54 50, 53, 57, 60, 64, 68, 71, 75,
55 78, 82, 86, 90, 93, 97, 101, 105,
56 109, 113, 116, 120, 124, 128, 132, 136,
57 140, 143, 147, 151, 155, 159, 163, 166,
58 170, 174, 178, 182, 185, 189, 193, 197,
59 200, 204, 208, 212, 215, 219, 223, 226,
60 230, 233, 237, 241, 244, 248, 251, 255,
61 259, 262, 266, 269, 273, 276, 280, 283,
62 287, 290, 293, 297, 300, 304, 307, 310,
63 314, 317, 321, 324, 327, 331, 334, 337,
64 343, 350, 356, 362, 369, 375, 381, 387,
65 394, 400, 406, 412, 418, 424, 430, 436,
66 442, 448, 454, 460, 466, 472, 478, 484,
67 490, 499, 507, 516, 525, 533, 542, 550,
68 559, 567, 576, 584, 592, 601, 609, 617,
69 625, 634, 644, 655, 666, 676, 687, 698,
70 708, 718, 729, 739, 749, 759, 770, 782,
71 795, 807, 819, 831, 844, 856, 868, 880,
72 891, 906, 920, 933, 947, 961, 975, 988,
73 1001, 1015, 1030, 1045, 1061, 1076, 1090, 1105,
74 1120, 1137, 1153, 1170, 1186, 1202, 1218, 1236,
75 1253, 1271, 1288, 1306, 1323, 1342, 1361, 1379,
76 1398, 1416, 1436, 1456, 1476, 1496, 1516, 1537,
77 1559, 1580, 1601, 1624, 1647, 1670, 1692, 1717,
78 1741, 1766, 1791, 1817, 1844, 1871, 1900, 1929,
79 1958, 1990, 2021, 2054, 2088, 2123, 2159, 2197,
80 2236, 2276, 2319, 2363, 2410, 2458, 2508, 2561,
81 2616, 2675, 2737, 2802, 2871, 2944, 3020, 3102,
82 3188, 3280, 3375, 3478, 3586, 3702, 3823, 3953,
83 4089, 4236, 4394, 4559, 4737, 4929, 5130, 5347,
84 };
85
86 static const int16_t dc_qlookup_12[QINDEX_RANGE] = {
87 4, 12, 18, 25, 33, 41, 50, 60,
88 70, 80, 91, 103, 115, 127, 140, 153,
89 166, 180, 194, 208, 222, 237, 251, 266,
90 281, 296, 312, 327, 343, 358, 374, 390,
91 405, 421, 437, 453, 469, 484, 500, 516,
92 532, 548, 564, 580, 596, 611, 627, 643,
93 659, 674, 690, 706, 721, 737, 752, 768,
94 783, 798, 814, 829, 844, 859, 874, 889,
95 904, 919, 934, 949, 964, 978, 993, 1008,
96 1022, 1037, 1051, 1065, 1080, 1094, 1108, 1122,
97 1136, 1151, 1165, 1179, 1192, 1206, 1220, 1234,
98 1248, 1261, 1275, 1288, 1302, 1315, 1329, 1342,
99 1368, 1393, 1419, 1444, 1469, 1494, 1519, 1544,
100 1569, 1594, 1618, 1643, 1668, 1692, 1717, 1741,
101 1765, 1789, 1814, 1838, 1862, 1885, 1909, 1933,
102 1957, 1992, 2027, 2061, 2096, 2130, 2165, 2199,
103 2233, 2267, 2300, 2334, 2367, 2400, 2434, 2467,
104 2499, 2532, 2575, 2618, 2661, 2704, 2746, 2788,
105 2830, 2872, 2913, 2954, 2995, 3036, 3076, 3127,
106 3177, 3226, 3275, 3324, 3373, 3421, 3469, 3517,
107 3565, 3621, 3677, 3733, 3788, 3843, 3897, 3951,
108 4005, 4058, 4119, 4181, 4241, 4301, 4361, 4420,
109 4479, 4546, 4612, 4677, 4742, 4807, 4871, 4942,
110 5013, 5083, 5153, 5222, 5291, 5367, 5442, 5517,
111 5591, 5665, 5745, 5825, 5905, 5984, 6063, 6149,
112 6234, 6319, 6404, 6495, 6587, 6678, 6769, 6867,
113 6966, 7064, 7163, 7269, 7376, 7483, 7599, 7715,
114 7832, 7958, 8085, 8214, 8352, 8492, 8635, 8788,
115 8945, 9104, 9275, 9450, 9639, 9832, 10031, 10245,
116 10465, 10702, 10946, 11210, 11482, 11776, 12081, 12409,
117 12750, 13118, 13501, 13913, 14343, 14807, 15290, 15812,
118 16356, 16943, 17575, 18237, 18949, 19718, 20521, 21387,
119 };
120 #endif
121
50 static const int16_t ac_qlookup[QINDEX_RANGE] = { 122 static const int16_t ac_qlookup[QINDEX_RANGE] = {
51 4, 8, 9, 10, 11, 12, 13, 14, 123 4, 8, 9, 10, 11, 12, 13, 14,
52 15, 16, 17, 18, 19, 20, 21, 22, 124 15, 16, 17, 18, 19, 20, 21, 22,
53 23, 24, 25, 26, 27, 28, 29, 30, 125 23, 24, 25, 26, 27, 28, 29, 30,
54 31, 32, 33, 34, 35, 36, 37, 38, 126 31, 32, 33, 34, 35, 36, 37, 38,
55 39, 40, 41, 42, 43, 44, 45, 46, 127 39, 40, 41, 42, 43, 44, 45, 46,
56 47, 48, 49, 50, 51, 52, 53, 54, 128 47, 48, 49, 50, 51, 52, 53, 54,
57 55, 56, 57, 58, 59, 60, 61, 62, 129 55, 56, 57, 58, 59, 60, 61, 62,
58 63, 64, 65, 66, 67, 68, 69, 70, 130 63, 64, 65, 66, 67, 68, 69, 70,
59 71, 72, 73, 74, 75, 76, 77, 78, 131 71, 72, 73, 74, 75, 76, 77, 78,
(...skipping 15 matching lines...) Expand all
75 550, 560, 571, 582, 593, 604, 615, 627, 147 550, 560, 571, 582, 593, 604, 615, 627,
76 639, 651, 663, 676, 689, 702, 715, 729, 148 639, 651, 663, 676, 689, 702, 715, 729,
77 743, 757, 771, 786, 801, 816, 832, 848, 149 743, 757, 771, 786, 801, 816, 832, 848,
78 864, 881, 898, 915, 933, 951, 969, 988, 150 864, 881, 898, 915, 933, 951, 969, 988,
79 1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151, 151 1007, 1026, 1046, 1066, 1087, 1108, 1129, 1151,
80 1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343, 152 1173, 1196, 1219, 1243, 1267, 1292, 1317, 1343,
81 1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567, 153 1369, 1396, 1423, 1451, 1479, 1508, 1537, 1567,
82 1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828, 154 1597, 1628, 1660, 1692, 1725, 1759, 1793, 1828,
83 }; 155 };
84 156
85 int16_t vp9_dc_quant(int qindex, int delta) { 157 #if CONFIG_VP9_HIGHBITDEPTH
158 static const int16_t ac_qlookup_10[QINDEX_RANGE] = {
159 4, 9, 11, 13, 16, 18, 21, 24,
160 27, 30, 33, 37, 40, 44, 48, 51,
161 55, 59, 63, 67, 71, 75, 79, 83,
162 88, 92, 96, 100, 105, 109, 114, 118,
163 122, 127, 131, 136, 140, 145, 149, 154,
164 158, 163, 168, 172, 177, 181, 186, 190,
165 195, 199, 204, 208, 213, 217, 222, 226,
166 231, 235, 240, 244, 249, 253, 258, 262,
167 267, 271, 275, 280, 284, 289, 293, 297,
168 302, 306, 311, 315, 319, 324, 328, 332,
169 337, 341, 345, 349, 354, 358, 362, 367,
170 371, 375, 379, 384, 388, 392, 396, 401,
171 409, 417, 425, 433, 441, 449, 458, 466,
172 474, 482, 490, 498, 506, 514, 523, 531,
173 539, 547, 555, 563, 571, 579, 588, 596,
174 604, 616, 628, 640, 652, 664, 676, 688,
175 700, 713, 725, 737, 749, 761, 773, 785,
176 797, 809, 825, 841, 857, 873, 889, 905,
177 922, 938, 954, 970, 986, 1002, 1018, 1038,
178 1058, 1078, 1098, 1118, 1138, 1158, 1178, 1198,
179 1218, 1242, 1266, 1290, 1314, 1338, 1362, 1386,
180 1411, 1435, 1463, 1491, 1519, 1547, 1575, 1603,
181 1631, 1663, 1695, 1727, 1759, 1791, 1823, 1859,
182 1895, 1931, 1967, 2003, 2039, 2079, 2119, 2159,
183 2199, 2239, 2283, 2327, 2371, 2415, 2459, 2507,
184 2555, 2603, 2651, 2703, 2755, 2807, 2859, 2915,
185 2971, 3027, 3083, 3143, 3203, 3263, 3327, 3391,
186 3455, 3523, 3591, 3659, 3731, 3803, 3876, 3952,
187 4028, 4104, 4184, 4264, 4348, 4432, 4516, 4604,
188 4692, 4784, 4876, 4972, 5068, 5168, 5268, 5372,
189 5476, 5584, 5692, 5804, 5916, 6032, 6148, 6268,
190 6388, 6512, 6640, 6768, 6900, 7036, 7172, 7312,
191 };
192
193 static const int16_t ac_qlookup_12[QINDEX_RANGE] = {
194 4, 13, 19, 27, 35, 44, 54, 64,
195 75, 87, 99, 112, 126, 139, 154, 168,
196 183, 199, 214, 230, 247, 263, 280, 297,
197 314, 331, 349, 366, 384, 402, 420, 438,
198 456, 475, 493, 511, 530, 548, 567, 586,
199 604, 623, 642, 660, 679, 698, 716, 735,
200 753, 772, 791, 809, 828, 846, 865, 884,
201 902, 920, 939, 957, 976, 994, 1012, 1030,
202 1049, 1067, 1085, 1103, 1121, 1139, 1157, 1175,
203 1193, 1211, 1229, 1246, 1264, 1282, 1299, 1317,
204 1335, 1352, 1370, 1387, 1405, 1422, 1440, 1457,
205 1474, 1491, 1509, 1526, 1543, 1560, 1577, 1595,
206 1627, 1660, 1693, 1725, 1758, 1791, 1824, 1856,
207 1889, 1922, 1954, 1987, 2020, 2052, 2085, 2118,
208 2150, 2183, 2216, 2248, 2281, 2313, 2346, 2378,
209 2411, 2459, 2508, 2556, 2605, 2653, 2701, 2750,
210 2798, 2847, 2895, 2943, 2992, 3040, 3088, 3137,
211 3185, 3234, 3298, 3362, 3426, 3491, 3555, 3619,
212 3684, 3748, 3812, 3876, 3941, 4005, 4069, 4149,
213 4230, 4310, 4390, 4470, 4550, 4631, 4711, 4791,
214 4871, 4967, 5064, 5160, 5256, 5352, 5448, 5544,
215 5641, 5737, 5849, 5961, 6073, 6185, 6297, 6410,
216 6522, 6650, 6778, 6906, 7034, 7162, 7290, 7435,
217 7579, 7723, 7867, 8011, 8155, 8315, 8475, 8635,
218 8795, 8956, 9132, 9308, 9484, 9660, 9836, 10028,
219 10220, 10412, 10604, 10812, 11020, 11228, 11437, 11661,
220 11885, 12109, 12333, 12573, 12813, 13053, 13309, 13565,
221 13821, 14093, 14365, 14637, 14925, 15213, 15502, 15806,
222 16110, 16414, 16734, 17054, 17390, 17726, 18062, 18414,
223 18766, 19134, 19502, 19886, 20270, 20670, 21070, 21486,
224 21902, 22334, 22766, 23214, 23662, 24126, 24590, 25070,
225 25551, 26047, 26559, 27071, 27599, 28143, 28687, 29247,
226 };
227 #endif
228
229 int16_t vp9_dc_quant(int qindex, int delta, vpx_bit_depth_t bit_depth) {
230 #if CONFIG_VP9_HIGHBITDEPTH
231 switch (bit_depth) {
232 case VPX_BITS_8:
233 return dc_qlookup[clamp(qindex + delta, 0, MAXQ)];
234 case VPX_BITS_10:
235 return dc_qlookup_10[clamp(qindex + delta, 0, MAXQ)];
236 case VPX_BITS_12:
237 return dc_qlookup_12[clamp(qindex + delta, 0, MAXQ)];
238 default:
239 assert(0 && "bit_depth should be VPX_BITS_8, VPX_BITS_10 or VPX_BITS_12");
240 return -1;
241 }
242 #else
243 (void) bit_depth;
86 return dc_qlookup[clamp(qindex + delta, 0, MAXQ)]; 244 return dc_qlookup[clamp(qindex + delta, 0, MAXQ)];
245 #endif
87 } 246 }
88 247
89 int16_t vp9_ac_quant(int qindex, int delta) { 248 int16_t vp9_ac_quant(int qindex, int delta, vpx_bit_depth_t bit_depth) {
249 #if CONFIG_VP9_HIGHBITDEPTH
250 switch (bit_depth) {
251 case VPX_BITS_8:
252 return ac_qlookup[clamp(qindex + delta, 0, MAXQ)];
253 case VPX_BITS_10:
254 return ac_qlookup_10[clamp(qindex + delta, 0, MAXQ)];
255 case VPX_BITS_12:
256 return ac_qlookup_12[clamp(qindex + delta, 0, MAXQ)];
257 default:
258 assert(0 && "bit_depth should be VPX_BITS_8, VPX_BITS_10 or VPX_BITS_12");
259 return -1;
260 }
261 #else
262 (void) bit_depth;
90 return ac_qlookup[clamp(qindex + delta, 0, MAXQ)]; 263 return ac_qlookup[clamp(qindex + delta, 0, MAXQ)];
264 #endif
91 } 265 }
92 266
93
94 int vp9_get_qindex(const struct segmentation *seg, int segment_id, 267 int vp9_get_qindex(const struct segmentation *seg, int segment_id,
95 int base_qindex) { 268 int base_qindex) {
96 if (vp9_segfeature_active(seg, segment_id, SEG_LVL_ALT_Q)) { 269 if (vp9_segfeature_active(seg, segment_id, SEG_LVL_ALT_Q)) {
97 const int data = vp9_get_segdata(seg, segment_id, SEG_LVL_ALT_Q); 270 const int data = vp9_get_segdata(seg, segment_id, SEG_LVL_ALT_Q);
98 const int seg_qindex = seg->abs_delta == SEGMENT_ABSDATA ? 271 const int seg_qindex = seg->abs_delta == SEGMENT_ABSDATA ?
99 data : base_qindex + data; 272 data : base_qindex + data;
100 return clamp(seg_qindex, 0, MAXQ); 273 return clamp(seg_qindex, 0, MAXQ);
101 } else { 274 } else {
102 return base_qindex; 275 return base_qindex;
103 } 276 }
104 } 277 }
105 278
OLDNEW
« no previous file with comments | « source/libvpx/vp9/common/vp9_quant_common.h ('k') | source/libvpx/vp9/common/vp9_reconinter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698