FFmpeg
libavcodec
jpeg2000dec.h
Go to the documentation of this file.
1
/*
2
* JPEG 2000 image decoder
3
* Copyright (c) 2007 Kamil Nowosad
4
* Copyright (c) 2013 Nicolas Bertrand <nicoinattendu@gmail.com>
5
* Copyright (c) 2022 Caleb Etemesi <etemesicaleb@gmail.com>
6
*
7
* This file is part of FFmpeg.
8
*
9
* FFmpeg is free software; you can redistribute it and/or
10
* modify it under the terms of the GNU Lesser General Public
11
* License as published by the Free Software Foundation; either
12
* version 2.1 of the License, or (at your option) any later version.
13
*
14
* FFmpeg is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
* Lesser General Public License for more details.
18
*
19
* You should have received a copy of the GNU Lesser General Public
20
* License along with FFmpeg; if not, write to the Free Software
21
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
22
*/
23
24
#ifndef AVCODEC_JPEG2000DEC_H
25
#define AVCODEC_JPEG2000DEC_H
26
27
#include "
bytestream.h
"
28
#include "
jpeg2000.h
"
29
#include "
jpeg2000dsp.h
"
30
31
32
#define MAX_POCS 32
33
34
typedef
struct
Jpeg2000POCEntry
{
35
uint16_t
LYEpoc
;
36
uint16_t
CSpoc
;
37
uint16_t
CEpoc
;
38
uint8_t
RSpoc
;
39
uint8_t
REpoc
;
40
uint8_t
Ppoc
;
41
}
Jpeg2000POCEntry
;
42
43
typedef
struct
Jpeg2000POC
{
44
Jpeg2000POCEntry
poc
[
MAX_POCS
];
45
int
nb_poc
;
46
int
is_default
;
47
}
Jpeg2000POC
;
48
49
typedef
struct
Jpeg2000TilePart
{
50
uint8_t
tile_index
;
// Tile index who refers the tile-part
51
const
uint8_t *
tp_end
;
52
GetByteContext
header_tpg
;
// bit stream of header if PPM header is used
53
GetByteContext
tpg
;
// bit stream in tile-part
54
}
Jpeg2000TilePart
;
55
56
/* RMK: For JPEG2000 DCINEMA 3 tile-parts in a tile
57
* one per component, so tile_part elements have a size of 3 */
58
typedef
struct
Jpeg2000Tile
{
59
Jpeg2000Component
*
comp
;
60
uint8_t
properties
[4];
61
Jpeg2000CodingStyle
codsty
[4];
62
Jpeg2000QuantStyle
qntsty
[4];
63
Jpeg2000POC
poc
;
64
Jpeg2000TilePart
tile_part
[32];
65
uint8_t
has_ppt
;
// whether this tile has a ppt marker
66
uint8_t *
packed_headers
;
// contains packed headers. Used only along with PPT marker
67
int
packed_headers_size
;
// size in bytes of the packed headers
68
GetByteContext
packed_headers_stream
;
// byte context corresponding to packed headers
69
uint16_t
tp_idx
;
// Tile-part index
70
int
coord
[2][2];
// border coordinates {{x0, x1}, {y0, y1}}
71
}
Jpeg2000Tile
;
72
73
typedef
struct
Jpeg2000DecoderContext
{
74
AVClass
*
class
;
75
AVCodecContext
*
avctx
;
76
GetByteContext
g
;
77
78
int
width
,
height
;
79
int
image_offset_x
,
image_offset_y
;
80
int
tile_offset_x
,
tile_offset_y
;
81
uint8_t
cbps
[4];
// bits per sample in particular components
82
uint8_t
sgnd
[4];
// if a component is signed
83
uint8_t
properties
[4];
84
85
uint8_t
has_ppm
;
86
uint8_t *
packed_headers
;
// contains packed headers. Used only along with PPM marker
87
int
packed_headers_size
;
88
GetByteContext
packed_headers_stream
;
89
uint8_t
in_tile_headers
;
90
91
int
cdx
[4],
cdy
[4];
92
int
precision
;
93
int
ncomponents
;
94
int
colour_space
;
95
uint32_t
palette
[256];
96
int8_t
pal8
;
97
int
cdef
[4];
98
int
tile_width
,
tile_height
;
99
unsigned
numXtiles
,
numYtiles
;
100
int
maxtilelen
;
101
AVRational
sar
;
102
103
Jpeg2000CodingStyle
codsty
[4];
104
Jpeg2000QuantStyle
qntsty
[4];
105
Jpeg2000POC
poc
;
106
uint8_t
roi_shift
[4];
107
108
int
bit_index
;
109
110
int
curtileno
;
111
112
Jpeg2000Tile
*
tile
;
113
Jpeg2000DSPContext
dsp
;
114
115
/*options parameters*/
116
int
reduction_factor
;
117
}
Jpeg2000DecoderContext
;
118
119
#endif //AVCODEC_JPEG2000DEC_H
Jpeg2000POCEntry::CEpoc
uint16_t CEpoc
Definition:
jpeg2000dec.h:37
Jpeg2000DecoderContext::packed_headers_size
int packed_headers_size
Definition:
jpeg2000dec.h:87
Jpeg2000DecoderContext::palette
uint32_t palette[256]
Definition:
jpeg2000dec.h:95
Jpeg2000POC::is_default
int is_default
Definition:
jpeg2000dec.h:46
GetByteContext
Definition:
bytestream.h:33
Jpeg2000POCEntry::REpoc
uint8_t REpoc
Definition:
jpeg2000dec.h:39
Jpeg2000DecoderContext::width
int width
Definition:
jpeg2000dec.h:78
Jpeg2000DecoderContext::tile_width
int tile_width
Definition:
jpeg2000dec.h:98
Jpeg2000DecoderContext::curtileno
int curtileno
Definition:
jpeg2000dec.h:110
Jpeg2000POCEntry
Definition:
jpeg2000dec.h:34
Jpeg2000DecoderContext::numXtiles
unsigned numXtiles
Definition:
jpeg2000dec.h:99
Jpeg2000POCEntry::CSpoc
uint16_t CSpoc
Definition:
jpeg2000dec.h:36
Jpeg2000Tile
Definition:
j2kenc.c:106
Jpeg2000Tile::packed_headers
uint8_t * packed_headers
Definition:
jpeg2000dec.h:66
Jpeg2000DecoderContext::in_tile_headers
uint8_t in_tile_headers
Definition:
jpeg2000dec.h:89
Jpeg2000DecoderContext::cdef
int cdef[4]
Definition:
jpeg2000dec.h:97
Jpeg2000DecoderContext::sgnd
uint8_t sgnd[4]
Definition:
jpeg2000dec.h:82
Jpeg2000DecoderContext::image_offset_x
int image_offset_x
Definition:
jpeg2000dec.h:79
Jpeg2000DecoderContext::maxtilelen
int maxtilelen
Definition:
jpeg2000dec.h:100
Jpeg2000DecoderContext::g
GetByteContext g
Definition:
jpeg2000dec.h:76
Jpeg2000DecoderContext::precision
int precision
Definition:
jpeg2000dec.h:92
Jpeg2000DecoderContext::cdx
int cdx[4]
Definition:
jpeg2000dec.h:91
Jpeg2000DecoderContext::poc
Jpeg2000POC poc
Definition:
jpeg2000dec.h:105
Jpeg2000DecoderContext::reduction_factor
int reduction_factor
Definition:
jpeg2000dec.h:116
Jpeg2000DecoderContext::roi_shift
uint8_t roi_shift[4]
Definition:
jpeg2000dec.h:106
Jpeg2000DecoderContext::avctx
AVCodecContext * avctx
Definition:
jpeg2000dec.h:75
Jpeg2000DecoderContext::ncomponents
int ncomponents
Definition:
jpeg2000dec.h:93
Jpeg2000Tile::comp
Jpeg2000Component * comp
Definition:
j2kenc.c:107
Jpeg2000POCEntry::Ppoc
uint8_t Ppoc
Definition:
jpeg2000dec.h:40
Jpeg2000DecoderContext::codsty
Jpeg2000CodingStyle codsty[4]
Definition:
jpeg2000dec.h:103
Jpeg2000Tile::packed_headers_stream
GetByteContext packed_headers_stream
Definition:
jpeg2000dec.h:68
jpeg2000.h
Jpeg2000DSPContext
Definition:
jpeg2000dsp.h:29
Jpeg2000POC::nb_poc
int nb_poc
Definition:
jpeg2000dec.h:45
Jpeg2000Tile::has_ppt
uint8_t has_ppt
Definition:
jpeg2000dec.h:65
AVClass
Describe the class of an AVClass context structure.
Definition:
log.h:66
Jpeg2000DecoderContext::sar
AVRational sar
Definition:
jpeg2000dec.h:101
Jpeg2000POC
Definition:
jpeg2000dec.h:43
AVRational
Rational number (pair of numerator and denominator).
Definition:
rational.h:58
Jpeg2000DecoderContext::tile
Jpeg2000Tile * tile
Definition:
jpeg2000dec.h:112
Jpeg2000DecoderContext::tile_offset_y
int tile_offset_y
Definition:
jpeg2000dec.h:80
Jpeg2000TilePart::tp_end
const uint8_t * tp_end
Definition:
jpeg2000dec.h:51
Jpeg2000Component
Definition:
jpeg2000.h:223
Jpeg2000Tile::codsty
Jpeg2000CodingStyle codsty[4]
Definition:
jpeg2000dec.h:61
Jpeg2000Tile::tp_idx
uint16_t tp_idx
Definition:
jpeg2000dec.h:69
Jpeg2000POC::poc
Jpeg2000POCEntry poc[MAX_POCS]
Definition:
jpeg2000dec.h:44
Jpeg2000DecoderContext::image_offset_y
int image_offset_y
Definition:
jpeg2000dec.h:79
Jpeg2000DecoderContext::height
int height
Definition:
jpeg2000dec.h:78
Jpeg2000DecoderContext::tile_height
int tile_height
Definition:
jpeg2000dec.h:98
Jpeg2000DecoderContext::qntsty
Jpeg2000QuantStyle qntsty[4]
Definition:
jpeg2000dec.h:104
Jpeg2000Tile::coord
int coord[2][2]
Definition:
jpeg2000dec.h:70
Jpeg2000Tile::properties
uint8_t properties[4]
Definition:
jpeg2000dec.h:60
Jpeg2000TilePart::tile_index
uint8_t tile_index
Definition:
jpeg2000dec.h:50
Jpeg2000DecoderContext::tile_offset_x
int tile_offset_x
Definition:
jpeg2000dec.h:80
Jpeg2000DecoderContext::bit_index
int bit_index
Definition:
jpeg2000dec.h:108
Jpeg2000DecoderContext::properties
uint8_t properties[4]
Definition:
jpeg2000dec.h:83
Jpeg2000DecoderContext::cdy
int cdy[4]
Definition:
jpeg2000dec.h:91
Jpeg2000TilePart
Definition:
jpeg2000dec.h:49
Jpeg2000DecoderContext::packed_headers
uint8_t * packed_headers
Definition:
jpeg2000dec.h:86
Jpeg2000Tile::poc
Jpeg2000POC poc
Definition:
jpeg2000dec.h:63
Jpeg2000DecoderContext::cbps
uint8_t cbps[4]
Definition:
jpeg2000dec.h:81
Jpeg2000TilePart::tpg
GetByteContext tpg
Definition:
jpeg2000dec.h:53
AVCodecContext
main external API structure.
Definition:
avcodec.h:445
jpeg2000dsp.h
Jpeg2000POCEntry::LYEpoc
uint16_t LYEpoc
Definition:
jpeg2000dec.h:35
Jpeg2000DecoderContext::dsp
Jpeg2000DSPContext dsp
Definition:
jpeg2000dec.h:113
Jpeg2000DecoderContext::colour_space
int colour_space
Definition:
jpeg2000dec.h:94
Jpeg2000DecoderContext::has_ppm
uint8_t has_ppm
Definition:
jpeg2000dec.h:85
Jpeg2000DecoderContext::pal8
int8_t pal8
Definition:
jpeg2000dec.h:96
Jpeg2000POCEntry::RSpoc
uint8_t RSpoc
Definition:
jpeg2000dec.h:38
Jpeg2000Tile::packed_headers_size
int packed_headers_size
Definition:
jpeg2000dec.h:67
Jpeg2000Tile::tile_part
Jpeg2000TilePart tile_part[32]
Definition:
jpeg2000dec.h:64
Jpeg2000DecoderContext::numYtiles
unsigned numYtiles
Definition:
jpeg2000dec.h:99
bytestream.h
Jpeg2000DecoderContext::packed_headers_stream
GetByteContext packed_headers_stream
Definition:
jpeg2000dec.h:88
MAX_POCS
#define MAX_POCS
Definition:
jpeg2000dec.h:32
Jpeg2000CodingStyle
Definition:
jpeg2000.h:137
Jpeg2000QuantStyle
Definition:
jpeg2000.h:153
Jpeg2000DecoderContext
Definition:
jpeg2000dec.h:73
Jpeg2000Tile::qntsty
Jpeg2000QuantStyle qntsty[4]
Definition:
jpeg2000dec.h:62
Jpeg2000TilePart::header_tpg
GetByteContext header_tpg
Definition:
jpeg2000dec.h:52
Generated on Thu Sep 26 2024 23:15:01 for FFmpeg by
1.8.17