Grok  9.7.5
CodeStreamLimits.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2022 Grok Image Compression Inc.
3  *
4  * This source code is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Affero General Public License, version 3,
6  * as published by the Free Software Foundation.
7  *
8  * This source code is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU Affero General Public License for more details.
12  *
13  * You should have received a copy of the GNU Affero General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  *
17  */
18 
19 #pragma once
20 
21 namespace grk
22 {
23 // Limits defined in JPEG 2000 standard
24 const uint32_t maxNumComponentsJ2K = 16384;
25 const uint32_t maxPrecisionJ2K = 38;
26 const uint32_t maxPassesPerSegmentJ2K = (maxPrecisionJ2K - 1) * 3 + 1;
27 const uint32_t maxNumTilesJ2K = 65535;
28 const uint32_t maxTilePartsPerTileJ2K = 255;
29 const uint32_t maxTotalTilePartsJ2K = 65535;
30 // note: includes tile part header
31 const uint32_t maxTilePartSizeJ2K = UINT_MAX;
32 const uint32_t maxNumLayersJ2K = 65535;
33 
34 // Limits in Grok library
35 // We can have a maximum 31 bits in each 32 bit wavelet coefficient
36 // as the most significant bit is reserved for the sign.
37 // Since we need T1_NMSEDEC_FRACBITS fixed point fractional bits,
38 // we can only support a maximum of (31-T1_NMSEDEC_FRACBITS) bit planes
39 #define T1_NMSEDEC_BITS 7
40 #define T1_NMSEDEC_FRACBITS (T1_NMSEDEC_BITS - 1)
41 const uint32_t maxBitPlanesGRK = 31 - T1_NMSEDEC_FRACBITS;
42 // const uint32_t max_bit_planes_bibo = maxSupportedPrecisionGRK + GRK_J2K_MAXRLVLS * 5;
43 const uint16_t maxCompressLayersGRK = 100;
44 
45 } // namespace grk
#define T1_NMSEDEC_FRACBITS
Definition: CodeStreamLimits.h:40
Copyright (C) 2016-2022 Grok Image Compression Inc.
Definition: ICacheable.h:20
const uint32_t maxTilePartsPerTileJ2K
Definition: CodeStreamLimits.h:28
const uint32_t maxNumTilesJ2K
Definition: CodeStreamLimits.h:27
const uint16_t maxCompressLayersGRK
Definition: CodeStreamLimits.h:43
const uint32_t maxTilePartSizeJ2K
Definition: CodeStreamLimits.h:31
const uint32_t maxTotalTilePartsJ2K
Definition: CodeStreamLimits.h:29
const uint32_t maxPassesPerSegmentJ2K
Definition: CodeStreamLimits.h:26
const uint32_t maxBitPlanesGRK
Definition: CodeStreamLimits.h:41
const uint32_t maxNumComponentsJ2K
Definition: CodeStreamLimits.h:24
const uint32_t maxNumLayersJ2K
Definition: CodeStreamLimits.h:32
const uint32_t maxPrecisionJ2K
Definition: CodeStreamLimits.h:25