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

Side by Side Diff: third_party/libwebp/dec/tree.c

Issue 1546003002: libwebp: update to 0.5.0 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase around clang-cl fix Created 4 years, 12 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
OLDNEW
1 // Copyright 2010 Google Inc. All Rights Reserved. 1 // Copyright 2010 Google Inc. All Rights Reserved.
2 // 2 //
3 // Use of this source code is governed by a BSD-style license 3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the COPYING file in the root of the source 4 // that can be found in the COPYING file in the root of the source
5 // tree. An additional intellectual property rights grant can be found 5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS. All contributing project authors may 6 // in the file PATENTS. All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree. 7 // be found in the AUTHORS file in the root of the source tree.
8 // ----------------------------------------------------------------------------- 8 // -----------------------------------------------------------------------------
9 // 9 //
10 // Coding trees and probas 10 // Coding trees and probas
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } 487 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }
488 }, 488 },
489 { { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }, 489 { { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
490 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }, 490 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
491 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 } 491 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 }
492 } 492 }
493 } 493 }
494 }; 494 };
495 495
496 // Paragraph 9.9 496 // Paragraph 9.9
497
498 static const int kBands[16 + 1] = {
499 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7,
500 0 // extra entry as sentinel
501 };
502
497 void VP8ParseProba(VP8BitReader* const br, VP8Decoder* const dec) { 503 void VP8ParseProba(VP8BitReader* const br, VP8Decoder* const dec) {
498 VP8Proba* const proba = &dec->proba_; 504 VP8Proba* const proba = &dec->proba_;
499 int t, b, c, p; 505 int t, b, c, p;
500 for (t = 0; t < NUM_TYPES; ++t) { 506 for (t = 0; t < NUM_TYPES; ++t) {
501 for (b = 0; b < NUM_BANDS; ++b) { 507 for (b = 0; b < NUM_BANDS; ++b) {
502 for (c = 0; c < NUM_CTX; ++c) { 508 for (c = 0; c < NUM_CTX; ++c) {
503 for (p = 0; p < NUM_PROBAS; ++p) { 509 for (p = 0; p < NUM_PROBAS; ++p) {
504 const int v = VP8GetBit(br, CoeffsUpdateProba[t][b][c][p]) ? 510 const int v = VP8GetBit(br, CoeffsUpdateProba[t][b][c][p]) ?
505 VP8GetValue(br, 8) : CoeffsProba0[t][b][c][p]; 511 VP8GetValue(br, 8) : CoeffsProba0[t][b][c][p];
506 proba->bands_[t][b].probas_[c][p] = v; 512 proba->bands_[t][b].probas_[c][p] = v;
507 } 513 }
508 } 514 }
509 } 515 }
516 for (b = 0; b < 16 + 1; ++b) {
517 proba->bands_ptr_[t][b] = &proba->bands_[t][kBands[b]];
518 }
510 } 519 }
511 dec->use_skip_proba_ = VP8Get(br); 520 dec->use_skip_proba_ = VP8Get(br);
512 if (dec->use_skip_proba_) { 521 if (dec->use_skip_proba_) {
513 dec->skip_p_ = VP8GetValue(br, 8); 522 dec->skip_p_ = VP8GetValue(br, 8);
514 } 523 }
515 } 524 }
516 525
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698