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

Side by Side Diff: source/libvpx/vp9/encoder/vp9_quantize.c

Issue 668403002: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 1 month 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/encoder/vp9_quantize.h ('k') | source/libvpx/vp9/encoder/vp9_ratectrl.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 23 matching lines...) Expand all
34 tmp = (tmp * quant) >> 16; 34 tmp = (tmp * quant) >> 16;
35 qcoeff_ptr[rc] = (tmp ^ coeff_sign) - coeff_sign; 35 qcoeff_ptr[rc] = (tmp ^ coeff_sign) - coeff_sign;
36 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr; 36 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr;
37 if (tmp) 37 if (tmp)
38 eob = 0; 38 eob = 0;
39 } 39 }
40 *eob_ptr = eob + 1; 40 *eob_ptr = eob + 1;
41 } 41 }
42 42
43 #if CONFIG_VP9_HIGHBITDEPTH 43 #if CONFIG_VP9_HIGHBITDEPTH
44 void vp9_high_quantize_dc(const tran_low_t *coeff_ptr, int skip_block, 44 void vp9_highbd_quantize_dc(const tran_low_t *coeff_ptr, int skip_block,
45 const int16_t *round_ptr, const int16_t quant, 45 const int16_t *round_ptr, const int16_t quant,
46 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, 46 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr,
47 const int16_t dequant_ptr, uint16_t *eob_ptr) { 47 const int16_t dequant_ptr, uint16_t *eob_ptr) {
48 int eob = -1; 48 int eob = -1;
49 49
50 if (!skip_block) { 50 if (!skip_block) {
51 const int rc = 0; 51 const int rc = 0;
52 const int coeff = coeff_ptr[rc]; 52 const int coeff = coeff_ptr[rc];
53 const int coeff_sign = (coeff >> 31); 53 const int coeff_sign = (coeff >> 31);
54 const int abs_coeff = (coeff ^ coeff_sign) - coeff_sign; 54 const int abs_coeff = (coeff ^ coeff_sign) - coeff_sign;
55 55
56 const int64_t tmp = 56 const int64_t tmp =
57 (clamp(abs_coeff + round_ptr[rc != 0], INT32_MIN, INT32_MAX) * 57 (clamp(abs_coeff + round_ptr[rc != 0], INT32_MIN, INT32_MAX) *
(...skipping 23 matching lines...) Expand all
81 tmp = (tmp * quant) >> 15; 81 tmp = (tmp * quant) >> 15;
82 qcoeff_ptr[rc] = (tmp ^ coeff_sign) - coeff_sign; 82 qcoeff_ptr[rc] = (tmp ^ coeff_sign) - coeff_sign;
83 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr / 2; 83 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr / 2;
84 if (tmp) 84 if (tmp)
85 eob = 0; 85 eob = 0;
86 } 86 }
87 *eob_ptr = eob + 1; 87 *eob_ptr = eob + 1;
88 } 88 }
89 89
90 #if CONFIG_VP9_HIGHBITDEPTH 90 #if CONFIG_VP9_HIGHBITDEPTH
91 void vp9_high_quantize_dc_32x32(const tran_low_t *coeff_ptr, int skip_block, 91 void vp9_highbd_quantize_dc_32x32(const tran_low_t *coeff_ptr,
92 const int16_t *round_ptr, const int16_t quant, 92 int skip_block,
93 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, 93 const int16_t *round_ptr,
94 const int16_t dequant_ptr, uint16_t *eob_ptr) { 94 const int16_t quant,
95 tran_low_t *qcoeff_ptr,
96 tran_low_t *dqcoeff_ptr,
97 const int16_t dequant_ptr,
98 uint16_t *eob_ptr) {
95 int eob = -1; 99 int eob = -1;
96 100
97 if (!skip_block) { 101 if (!skip_block) {
98 const int rc = 0; 102 const int rc = 0;
99 const int coeff = coeff_ptr[rc]; 103 const int coeff = coeff_ptr[rc];
100 const int coeff_sign = (coeff >> 31); 104 const int coeff_sign = (coeff >> 31);
101 const int abs_coeff = (coeff ^ coeff_sign) - coeff_sign; 105 const int abs_coeff = (coeff ^ coeff_sign) - coeff_sign;
102 106
103 const int64_t tmp = 107 const int64_t tmp =
104 (clamp(abs_coeff + round_ptr[rc != 0], INT32_MIN, INT32_MAX) * 108 (clamp(abs_coeff + round_ptr[rc != 0], INT32_MIN, INT32_MAX) *
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
147 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0]; 151 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0];
148 152
149 if (tmp) 153 if (tmp)
150 eob = i; 154 eob = i;
151 } 155 }
152 } 156 }
153 *eob_ptr = eob + 1; 157 *eob_ptr = eob + 1;
154 } 158 }
155 159
156 #if CONFIG_VP9_HIGHBITDEPTH 160 #if CONFIG_VP9_HIGHBITDEPTH
157 void vp9_high_quantize_fp_c(const tran_low_t *coeff_ptr, intptr_t count, 161 void vp9_highbd_quantize_fp_c(const tran_low_t *coeff_ptr,
158 int skip_block, const int16_t *zbin_ptr, 162 intptr_t count,
159 const int16_t *round_ptr, const int16_t *quant_ptr, 163 int skip_block,
160 const int16_t *quant_shift_ptr, 164 const int16_t *zbin_ptr,
161 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, 165 const int16_t *round_ptr,
162 const int16_t *dequant_ptr, 166 const int16_t *quant_ptr,
163 int zbin_oq_value, uint16_t *eob_ptr, 167 const int16_t *quant_shift_ptr,
164 const int16_t *scan, const int16_t *iscan) { 168 tran_low_t *qcoeff_ptr,
169 tran_low_t *dqcoeff_ptr,
170 const int16_t *dequant_ptr,
171 int zbin_oq_value,
172 uint16_t *eob_ptr,
173 const int16_t *scan,
174 const int16_t *iscan) {
165 int i; 175 int i;
166 int eob = -1; 176 int eob = -1;
167 // TODO(jingning) Decide the need of these arguments after the 177 // TODO(jingning) Decide the need of these arguments after the
168 // quantization process is completed. 178 // quantization process is completed.
169 (void)zbin_ptr; 179 (void)zbin_ptr;
170 (void)quant_shift_ptr; 180 (void)quant_shift_ptr;
171 (void)zbin_oq_value; 181 (void)zbin_oq_value;
172 (void)iscan; 182 (void)iscan;
173 183
174 vpx_memset(qcoeff_ptr, 0, count * sizeof(*qcoeff_ptr)); 184 vpx_memset(qcoeff_ptr, 0, count * sizeof(*qcoeff_ptr));
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 } 245 }
236 246
237 if (tmp) 247 if (tmp)
238 eob = i; 248 eob = i;
239 } 249 }
240 } 250 }
241 *eob_ptr = eob + 1; 251 *eob_ptr = eob + 1;
242 } 252 }
243 253
244 #if CONFIG_VP9_HIGHBITDEPTH 254 #if CONFIG_VP9_HIGHBITDEPTH
245 void vp9_high_quantize_fp_32x32_c(const tran_low_t *coeff_ptr, 255 void vp9_highbd_quantize_fp_32x32_c(const tran_low_t *coeff_ptr,
246 intptr_t n_coeffs, int skip_block, 256 intptr_t n_coeffs, int skip_block,
247 const int16_t *zbin_ptr, 257 const int16_t *zbin_ptr,
248 const int16_t *round_ptr, 258 const int16_t *round_ptr,
249 const int16_t *quant_ptr, 259 const int16_t *quant_ptr,
250 const int16_t *quant_shift_ptr, 260 const int16_t *quant_shift_ptr,
251 tran_low_t *qcoeff_ptr, 261 tran_low_t *qcoeff_ptr,
252 tran_low_t *dqcoeff_ptr, 262 tran_low_t *dqcoeff_ptr,
253 const int16_t *dequant_ptr, 263 const int16_t *dequant_ptr,
254 int zbin_oq_value, uint16_t *eob_ptr, 264 int zbin_oq_value, uint16_t *eob_ptr,
255 const int16_t *scan, const int16_t *iscan) { 265 const int16_t *scan, const int16_t *iscan) {
256 int i, eob = -1; 266 int i, eob = -1;
257 (void)zbin_ptr; 267 (void)zbin_ptr;
258 (void)quant_shift_ptr; 268 (void)quant_shift_ptr;
259 (void)zbin_oq_value; 269 (void)zbin_oq_value;
260 (void)iscan; 270 (void)iscan;
261 271
262 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr)); 272 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr));
263 vpx_memset(dqcoeff_ptr, 0, n_coeffs * sizeof(*dqcoeff_ptr)); 273 vpx_memset(dqcoeff_ptr, 0, n_coeffs * sizeof(*dqcoeff_ptr));
264 274
265 if (!skip_block) { 275 if (!skip_block) {
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
333 343
334 if (tmp) 344 if (tmp)
335 eob = i; 345 eob = i;
336 } 346 }
337 } 347 }
338 } 348 }
339 *eob_ptr = eob + 1; 349 *eob_ptr = eob + 1;
340 } 350 }
341 351
342 #if CONFIG_VP9_HIGHBITDEPTH 352 #if CONFIG_VP9_HIGHBITDEPTH
343 void vp9_high_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs, 353 void vp9_highbd_quantize_b_c(const tran_low_t *coeff_ptr, intptr_t n_coeffs,
344 int skip_block, const int16_t *zbin_ptr, 354 int skip_block, const int16_t *zbin_ptr,
345 const int16_t *round_ptr, const int16_t *quant_ptr, 355 const int16_t *round_ptr, const int16_t *quant_ptr,
346 const int16_t *quant_shift_ptr, 356 const int16_t *quant_shift_ptr,
347 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr, 357 tran_low_t *qcoeff_ptr, tran_low_t *dqcoeff_ptr,
348 const int16_t *dequant_ptr, int zbin_oq_value, 358 const int16_t *dequant_ptr, int zbin_oq_value,
349 uint16_t *eob_ptr, const int16_t *scan, 359 uint16_t *eob_ptr, const int16_t *scan,
350 const int16_t *iscan) { 360 const int16_t *iscan) {
351 int i, non_zero_count = (int)n_coeffs, eob = -1; 361 int i, non_zero_count = (int)n_coeffs, eob = -1;
352 const int zbins[2] = { zbin_ptr[0] + zbin_oq_value, 362 const int zbins[2] = { zbin_ptr[0] + zbin_oq_value,
353 zbin_ptr[1] + zbin_oq_value }; 363 zbin_ptr[1] + zbin_oq_value };
354 const int nzbins[2] = { zbins[0] * -1, 364 const int nzbins[2] = { zbins[0] * -1,
355 zbins[1] * -1 }; 365 zbins[1] * -1 };
356 (void)iscan; 366 (void)iscan;
357 367
358 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr)); 368 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr));
359 vpx_memset(dqcoeff_ptr, 0, n_coeffs * sizeof(*dqcoeff_ptr)); 369 vpx_memset(dqcoeff_ptr, 0, n_coeffs * sizeof(*dqcoeff_ptr));
360 370
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0] / 2; 455 dqcoeff_ptr[rc] = qcoeff_ptr[rc] * dequant_ptr[rc != 0] / 2;
446 456
447 if (tmp) 457 if (tmp)
448 eob = idx_arr[i]; 458 eob = idx_arr[i];
449 } 459 }
450 } 460 }
451 *eob_ptr = eob + 1; 461 *eob_ptr = eob + 1;
452 } 462 }
453 463
454 #if CONFIG_VP9_HIGHBITDEPTH 464 #if CONFIG_VP9_HIGHBITDEPTH
455 void vp9_high_quantize_b_32x32_c(const tran_low_t *coeff_ptr, 465 void vp9_highbd_quantize_b_32x32_c(const tran_low_t *coeff_ptr,
456 intptr_t n_coeffs, int skip_block, 466 intptr_t n_coeffs, int skip_block,
457 const int16_t *zbin_ptr, 467 const int16_t *zbin_ptr,
458 const int16_t *round_ptr, 468 const int16_t *round_ptr,
459 const int16_t *quant_ptr, 469 const int16_t *quant_ptr,
460 const int16_t *quant_shift_ptr, 470 const int16_t *quant_shift_ptr,
461 tran_low_t *qcoeff_ptr, 471 tran_low_t *qcoeff_ptr,
462 tran_low_t *dqcoeff_ptr, 472 tran_low_t *dqcoeff_ptr,
463 const int16_t *dequant_ptr, 473 const int16_t *dequant_ptr,
464 int zbin_oq_value, uint16_t *eob_ptr, 474 int zbin_oq_value, uint16_t *eob_ptr,
465 const int16_t *scan, const int16_t *iscan) { 475 const int16_t *scan, const int16_t *iscan) {
466 const int zbins[2] = { ROUND_POWER_OF_TWO(zbin_ptr[0] + zbin_oq_value, 1), 476 const int zbins[2] = { ROUND_POWER_OF_TWO(zbin_ptr[0] + zbin_oq_value, 1),
467 ROUND_POWER_OF_TWO(zbin_ptr[1] + zbin_oq_value, 1) }; 477 ROUND_POWER_OF_TWO(zbin_ptr[1] + zbin_oq_value, 1) };
468 const int nzbins[2] = { zbins[0] * -1, zbins[1] * -1 }; 478 const int nzbins[2] = { zbins[0] * -1, zbins[1] * -1 };
469 479
470 int idx = 0; 480 int idx = 0;
471 int idx_arr[1024]; 481 int idx_arr[1024];
472 int i, eob = -1; 482 int i, eob = -1;
473 (void)iscan; 483 (void)iscan;
474 484
475 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr)); 485 vpx_memset(qcoeff_ptr, 0, n_coeffs * sizeof(*qcoeff_ptr));
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
512 #endif 522 #endif
513 523
514 void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int plane, int block, 524 void vp9_regular_quantize_b_4x4(MACROBLOCK *x, int plane, int block,
515 const int16_t *scan, const int16_t *iscan) { 525 const int16_t *scan, const int16_t *iscan) {
516 MACROBLOCKD *const xd = &x->e_mbd; 526 MACROBLOCKD *const xd = &x->e_mbd;
517 struct macroblock_plane *p = &x->plane[plane]; 527 struct macroblock_plane *p = &x->plane[plane];
518 struct macroblockd_plane *pd = &xd->plane[plane]; 528 struct macroblockd_plane *pd = &xd->plane[plane];
519 529
520 #if CONFIG_VP9_HIGHBITDEPTH 530 #if CONFIG_VP9_HIGHBITDEPTH
521 if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) { 531 if (xd->cur_buf->flags & YV12_FLAG_HIGHBITDEPTH) {
522 vp9_high_quantize_b(BLOCK_OFFSET(p->coeff, block), 532 vp9_highbd_quantize_b(BLOCK_OFFSET(p->coeff, block),
523 16, x->skip_block, 533 16, x->skip_block,
524 p->zbin, p->round, p->quant, p->quant_shift, 534 p->zbin, p->round, p->quant, p->quant_shift,
525 BLOCK_OFFSET(p->qcoeff, block), 535 BLOCK_OFFSET(p->qcoeff, block),
526 BLOCK_OFFSET(pd->dqcoeff, block), 536 BLOCK_OFFSET(pd->dqcoeff, block),
527 pd->dequant, p->zbin_extra, &p->eobs[block], 537 pd->dequant, p->zbin_extra, &p->eobs[block],
528 scan, iscan); 538 scan, iscan);
529 return; 539 return;
530 } 540 }
531 #endif 541 #endif
532 vp9_quantize_b(BLOCK_OFFSET(p->coeff, block), 542 vp9_quantize_b(BLOCK_OFFSET(p->coeff, block),
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
634 const int zbin = cpi->zbin_mode_boost; 644 const int zbin = cpi->zbin_mode_boost;
635 int i; 645 int i;
636 646
637 // Y 647 // Y
638 x->plane[0].quant = quants->y_quant[qindex]; 648 x->plane[0].quant = quants->y_quant[qindex];
639 x->plane[0].quant_fp = quants->y_quant_fp[qindex]; 649 x->plane[0].quant_fp = quants->y_quant_fp[qindex];
640 x->plane[0].round_fp = quants->y_round_fp[qindex]; 650 x->plane[0].round_fp = quants->y_round_fp[qindex];
641 x->plane[0].quant_shift = quants->y_quant_shift[qindex]; 651 x->plane[0].quant_shift = quants->y_quant_shift[qindex];
642 x->plane[0].zbin = quants->y_zbin[qindex]; 652 x->plane[0].zbin = quants->y_zbin[qindex];
643 x->plane[0].round = quants->y_round[qindex]; 653 x->plane[0].round = quants->y_round[qindex];
644 x->plane[0].quant_thred[0] = cm->y_dequant[qindex][0] *
645 cm->y_dequant[qindex][0];
646 x->plane[0].quant_thred[1] = cm->y_dequant[qindex][1] *
647 cm->y_dequant[qindex][1];
648 x->plane[0].zbin_extra = (int16_t)((cm->y_dequant[qindex][1] * zbin) >> 7); 654 x->plane[0].zbin_extra = (int16_t)((cm->y_dequant[qindex][1] * zbin) >> 7);
649 xd->plane[0].dequant = cm->y_dequant[qindex]; 655 xd->plane[0].dequant = cm->y_dequant[qindex];
650 656
657 x->plane[0].quant_thred[0] = (x->plane[0].zbin[0] + x->plane[0].zbin_extra) *
658 (x->plane[0].zbin[0] + x->plane[0].zbin_extra);
659 x->plane[0].quant_thred[1] = (x->plane[0].zbin[1] + x->plane[0].zbin_extra) *
660 (x->plane[0].zbin[1] + x->plane[0].zbin_extra);
661
651 // UV 662 // UV
652 for (i = 1; i < 3; i++) { 663 for (i = 1; i < 3; i++) {
653 x->plane[i].quant = quants->uv_quant[qindex]; 664 x->plane[i].quant = quants->uv_quant[qindex];
654 x->plane[i].quant_fp = quants->uv_quant_fp[qindex]; 665 x->plane[i].quant_fp = quants->uv_quant_fp[qindex];
655 x->plane[i].round_fp = quants->uv_round_fp[qindex]; 666 x->plane[i].round_fp = quants->uv_round_fp[qindex];
656 x->plane[i].quant_shift = quants->uv_quant_shift[qindex]; 667 x->plane[i].quant_shift = quants->uv_quant_shift[qindex];
657 x->plane[i].zbin = quants->uv_zbin[qindex]; 668 x->plane[i].zbin = quants->uv_zbin[qindex];
658 x->plane[i].round = quants->uv_round[qindex]; 669 x->plane[i].round = quants->uv_round[qindex];
659 x->plane[i].quant_thred[0] = cm->y_dequant[qindex][0] *
660 cm->y_dequant[qindex][0];
661 x->plane[i].quant_thred[1] = cm->y_dequant[qindex][1] *
662 cm->y_dequant[qindex][1];
663 x->plane[i].zbin_extra = (int16_t)((cm->uv_dequant[qindex][1] * zbin) >> 7); 670 x->plane[i].zbin_extra = (int16_t)((cm->uv_dequant[qindex][1] * zbin) >> 7);
664 xd->plane[i].dequant = cm->uv_dequant[qindex]; 671 xd->plane[i].dequant = cm->uv_dequant[qindex];
672
673 x->plane[i].quant_thred[0] =
674 (x->plane[i].zbin[0] + x->plane[i].zbin_extra) *
675 (x->plane[i].zbin[0] + x->plane[i].zbin_extra);
676 x->plane[i].quant_thred[1] =
677 (x->plane[i].zbin[1] + x->plane[i].zbin_extra) *
678 (x->plane[i].zbin[1] + x->plane[i].zbin_extra);
665 } 679 }
666 680
667 x->skip_block = vp9_segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP); 681 x->skip_block = vp9_segfeature_active(&cm->seg, segment_id, SEG_LVL_SKIP);
668 x->q_index = qindex; 682 x->q_index = qindex;
669 683
670 x->errorperbit = rdmult >> 6; 684 x->errorperbit = rdmult >> 6;
671 x->errorperbit += (x->errorperbit == 0); 685 x->errorperbit += (x->errorperbit == 0);
672 686
673 vp9_initialize_me_consts(cpi, x->q_index); 687 vp9_initialize_me_consts(cpi, x->q_index);
674 } 688 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
718 732
719 int vp9_qindex_to_quantizer(int qindex) { 733 int vp9_qindex_to_quantizer(int qindex) {
720 int quantizer; 734 int quantizer;
721 735
722 for (quantizer = 0; quantizer < 64; ++quantizer) 736 for (quantizer = 0; quantizer < 64; ++quantizer)
723 if (quantizer_to_qindex[quantizer] >= qindex) 737 if (quantizer_to_qindex[quantizer] >= qindex)
724 return quantizer; 738 return quantizer;
725 739
726 return 63; 740 return 63;
727 } 741 }
OLDNEW
« no previous file with comments | « source/libvpx/vp9/encoder/vp9_quantize.h ('k') | source/libvpx/vp9/encoder/vp9_ratectrl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698