Grok  7.6.2
Profile.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2016-2020 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  * This source code incorporates work covered by the BSD 2-clause license.
18  * Please see the LICENSE file in the root directory for details.
19  *
20  */
21 
22 #include "grk_includes.h"
23 
24 namespace grk {
25 
26 class Profile {
27 public:
28  static void initialise_4K_poc(grk_poc *POC, uint8_t numres);
29  static void set_cinema_parameters(grk_cparameters *parameters, grk_image *image);
30  static bool is_cinema_compliant(grk_image *image, uint16_t rsiz);
31  static void set_imf_parameters(grk_cparameters *parameters, grk_image *image);
32  static bool is_imf_compliant(grk_cparameters *parameters, grk_image *image);
33  static void set_broadcast_parameters(grk_cparameters *parameters);
34  static bool is_broadcast_compliant(grk_cparameters *parameters, grk_image *image);
35 private:
36 static int get_imf_max_NL(grk_cparameters *parameters, grk_image *image);
37 static int get_broadcast_max_NL(grk_cparameters *parameters, grk_image *image);
38 };
39 
40 }
_grk_cparameters::t_width
uint32_t t_width
XTsiz.
Definition: grok.h:447
_grk_poc::compno0
uint16_t compno0
Definition: grok.h:374
grk::Profile
Definition: Profile.h:26
grk::GRK_COMP_PARAM_DEFAULT_PROG_ORDER
const GRK_PROG_ORDER GRK_COMP_PARAM_DEFAULT_PROG_ORDER
Definition: CodeStream.h:42
_grk_cparameters::roi_compno
int32_t roi_compno
region of interest: affected component in [0..3]; -1 indicates no ROI
Definition: grok.h:489
_grk_poc
Progression order changes.
Definition: grok.h:371
GRK_PROFILE_CINEMA_4K
#define GRK_PROFILE_CINEMA_4K
Definition: grok.h:127
_grk_poc::resno1
uint8_t resno1
Definition: grok.h:377
GRK_PROFILE_BC_MULTI_R
#define GRK_PROFILE_BC_MULTI_R
Definition: grok.h:133
grk::Profile::is_cinema_compliant
static bool is_cinema_compliant(grk_image *image, uint16_t rsiz)
Definition: Profile.cpp:1039
_grk_cparameters::subsampling_dx
uint32_t subsampling_dx
subsampling value for dx
Definition: grok.h:507
_grk_image::comps
grk_image_comp * comps
image components
Definition: grok.h:895
grk::Profile::is_imf_compliant
static bool is_imf_compliant(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:147
_grk_cparameters::tcp_rates
double tcp_rates[100]
rates of layers, expressed as compression ratios.
Definition: grok.h:471
grk::GRK_WARN
void GRK_WARN(const char *fmt,...)
Definition: logger.cpp:49
_grk_cparameters::tile_size_on
bool tile_size_on
size of tile: tile_size_on = false (not in argument) or = true (in argument)
Definition: grok.h:441
_grk_cparameters::cblockh_init
uint32_t cblockh_init
initial code block height (default to 64)
Definition: grok.h:479
_grk_cparameters::prog_order
GRK_PROG_ORDER prog_order
progression order (default GRK_LRCP)
Definition: grok.h:462
_grk_cparameters::prch_init
uint32_t prch_init[GRK_J2K_MAXRLVLS]
initial precinct height
Definition: grok.h:497
GRK_PROFILE_IMF_8K_R
#define GRK_PROFILE_IMF_8K_R
Definition: grok.h:140
_grk_cparameters::tp_on
uint8_t tp_on
Tile part generation.
Definition: grok.h:521
J2K_CP_CSTY_PRT
#define J2K_CP_CSTY_PRT
Definition: CodeStream.h:62
GRK_GET_IMF_SUBLEVEL
#define GRK_GET_IMF_SUBLEVEL(v)
Definition: grok.h:264
_grk_cparameters::prcw_init
uint32_t prcw_init[GRK_J2K_MAXRLVLS]
initial precinct width
Definition: grok.h:495
_grk_image::numcomps
uint16_t numcomps
number of components in the image
Definition: grok.h:891
_grk_image_comp::w
uint32_t w
data width
Definition: grok.h:854
GRK_PROFILE_CINEMA_2K
#define GRK_PROFILE_CINEMA_2K
Definition: grok.h:126
grk::Profile::set_cinema_parameters
static void set_cinema_parameters(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:899
_grk_poc::compno1
uint16_t compno1
Definition: grok.h:378
_grk_cparameters::res_spec
uint32_t res_spec
Definition: grok.h:493
GRK_CINEMA_24_COMP
#define GRK_CINEMA_24_COMP
Definition: grok.h:283
GRK_GET_LEVEL
#define GRK_GET_LEVEL(v)
Definition: grok.h:210
GRK_PROFILE_IMF_4K
#define GRK_PROFILE_IMF_4K
Definition: grok.h:136
_grk_cparameters::numpocs
uint32_t numpocs
number of progression order changes (POCs), default to 0
Definition: grok.h:466
_grk_poc::resno0
uint8_t resno0
Resolution num start, component num start, given by POC.
Definition: grok.h:373
_grk_cparameters::ty0
uint32_t ty0
YTOsiz.
Definition: grok.h:445
_grk_image_comp::dy
uint32_t dy
YRsiz: vertical separation of a sample of with component with respect to the reference grid.
Definition: grok.h:852
_grk_poc::layno1
uint16_t layno1
Layer num end, resolution num end, component num end, given by POC.
Definition: grok.h:376
_grk_cparameters::tx0
uint32_t tx0
XTOsiz.
Definition: grok.h:443
grk::GRK_COMP_PARAM_DEFAULT_CBLOCKW
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKW
Definition: CodeStream.h:40
_grk_cparameters::rsiz
uint16_t rsiz
RSIZ value To be used to combine GRK_PROFILE_*, GRK_EXTENSION_* and (sub)levels values.
Definition: grok.h:538
GRK_CINEMA_24_CS
#define GRK_CINEMA_24_CS
JPEG 2000 cinema profile code stream and component size limits.
Definition: grok.h:281
grk::Profile::initialise_4K_poc
static void initialise_4K_poc(grk_poc *POC, uint8_t numres)
Definition: Profile.cpp:881
_grk_image_comp::sgnd
bool sgnd
Definition: grok.h:867
_grk_cparameters::cp_disto_alloc
bool cp_disto_alloc
allocation by rate/distortion
Definition: grok.h:451
_grk_cparameters::numresolution
uint8_t numresolution
number of resolutions
Definition: grok.h:475
_grk_image::y0
uint32_t y0
YOsiz: vertical offset from the origin of the reference grid to the top side of the image area.
Definition: grok.h:885
_grk_cparameters::tp_flag
uint8_t tp_flag
Flag for tile part generation.
Definition: grok.h:523
grk
Copyright (C) 2016-2020 Grok Image Compression Inc.
Definition: BitIO.cpp:23
grk::Profile::get_imf_max_NL
static int get_imf_max_NL(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:32
_grk_cparameters::image_offset_x0
uint32_t image_offset_x0
subimage compressing: origin image offset in x direction
Definition: grok.h:503
grk_includes.h
_grk_image_comp::h
uint32_t h
data height
Definition: grok.h:858
grk::GRK_COMP_PARAM_DEFAULT_CBLOCKH
const uint32_t GRK_COMP_PARAM_DEFAULT_CBLOCKH
Definition: CodeStream.h:41
_grk_cparameters::subsampling_dy
uint32_t subsampling_dy
subsampling value for dy
Definition: grok.h:509
_grk_cparameters::irreversible
bool irreversible
1 : use the irreversible DWT 9-7, 0 : use lossless compression (default)
Definition: grok.h:486
GRK_PROFILE_IMF_4K_R
#define GRK_PROFILE_IMF_4K_R
Definition: grok.h:139
GRK_PROFILE_IMF_8K
#define GRK_PROFILE_IMF_8K
Definition: grok.h:137
grk::tabMaxSubLevelFromMainLevel
static const uint16_t tabMaxSubLevelFromMainLevel[]
Definition: Profile.cpp:29
_grk_poc::prg1
GRK_PROG_ORDER prg1
Progression order enum.
Definition: grok.h:383
grk::Profile::get_broadcast_max_NL
static int get_broadcast_max_NL(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:549
_grk_cparameters::tcp_numlayers
uint16_t tcp_numlayers
number of layers
Definition: grok.h:468
grk::Profile::set_imf_parameters
static void set_imf_parameters(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:79
grk::GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION
const uint32_t GRK_COMP_PARAM_DEFAULT_NUMRESOLUTION
Definition: CodeStream.h:43
_grk_cparameters::POC
grk_poc POC[32]
progression order changes
Definition: grok.h:464
GRK_CPRL
@ GRK_CPRL
component-precinct-resolution-layer order
Definition: grok.h:295
_grk_cparameters::max_cs_size
uint64_t max_cs_size
Maximum size (in bytes) for the whole code stream.
Definition: grok.h:535
_grk_cparameters::cblockw_init
uint32_t cblockw_init
initial code block width (default to 64)
Definition: grok.h:477
grk::Profile::set_broadcast_parameters
static void set_broadcast_parameters(grk_cparameters *parameters)
Definition: Profile.cpp:597
_grk_image_comp::dx
uint32_t dx
XRsiz: horizontal separation of a sample of with component with respect to the reference grid.
Definition: grok.h:850
_grk_image::x1
uint32_t x1
Xsiz: width of the reference grid.
Definition: grok.h:887
_grk_poc::tile
uint32_t tile
Tile number.
Definition: grok.h:387
GRK_PROFILE_IMF_2K
#define GRK_PROFILE_IMF_2K
Definition: grok.h:135
_grk_cparameters::max_comp_size
uint32_t max_comp_size
Maximum size (in bytes) for each component.
Definition: grok.h:519
_grk_cparameters::csty
uint8_t csty
csty : coding style
Definition: grok.h:460
GRK_PROFILE_BC_SINGLE
#define GRK_PROFILE_BC_SINGLE
Definition: grok.h:131
_grk_image
Image.
Definition: grok.h:879
_grk_cparameters::t_height
uint32_t t_height
YTsiz.
Definition: grok.h:449
_grk_cparameters
Compress parameters.
Definition: grok.h:439
_grk_image::y1
uint32_t y1
Ysiz: height of the reference grid.
Definition: grok.h:889
_grk_image_comp::prec
uint8_t prec
precision
Definition: grok.h:866
GRK_PROFILE_IMF_2K_R
#define GRK_PROFILE_IMF_2K_R
Definition: grok.h:138
GRK_LEVEL_MAX
#define GRK_LEVEL_MAX
Definition: grok.h:209
_grk_cparameters::cblk_sty
uint8_t cblk_sty
code block style
Definition: grok.h:481
GRK_GET_IMF_OR_BROADCAST_PROFILE
#define GRK_GET_IMF_OR_BROADCAST_PROFILE(v)
Extract profile without mainlevel/sublevel.
Definition: grok.h:207
GRK_PROFILE_BC_MULTI
#define GRK_PROFILE_BC_MULTI
Definition: grok.h:132
_grk_cparameters::image_offset_y0
uint32_t image_offset_y0
subimage compressing: origin image offset in y direction
Definition: grok.h:505
_grk_image::x0
uint32_t x0
XOsiz: horizontal offset from the origin of the reference grid to the left side of the image area.
Definition: grok.h:882
grk::Profile::is_broadcast_compliant
static bool is_broadcast_compliant(grk_cparameters *parameters, grk_image *image)
Definition: Profile.cpp:638