// Copyright (c) the JPEG XL 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.
Status DecodeTree(JxlMemoryManager *memory_manager, BitReader *br, Tree *tree,
size_t tree_size_limit) {
std::vector<uint8_t> tree_context_map;
ANSCode tree_code;
JXL_RETURN_IF_ERROR(DecodeHistograms(memory_manager, br, kNumTreeContexts,
&tree_code, &tree_context_map)); // TODO(eustas): investigate more infinite tree cases. if (tree_code.degenerate_symbols[tree_context_map[kPropertyContext]] > 0) { return JXL_FAILURE("Infinite tree");
}
JXL_ASSIGN_OR_RETURN(ANSSymbolReader reader,
ANSSymbolReader::Create(&tree_code, br));
JXL_RETURN_IF_ERROR(DecodeTree(br, &reader, tree_context_map, tree,
std::min(tree_size_limit, kMaxTreeSize))); if (!reader.CheckANSFinalState()) { return JXL_FAILURE("ANS decode final state failed");
} returntrue;
}
} // namespace jxl
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.13Bemerkung:
(vorverarbeitet am 2026-04-25)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.