ojph_block_decoder.cpp File Reference

implements a HTJ2K block decoder More...

`#include <string>`
`#include <iostream>`
`#include <cassert>`
`#include <cstring>`
`#include "grok.h"`
`#include "logger.h"`
`#include "ojph_block_common.h"`
`#include "ojph_block_decoder.h"`
`#include "ojph_arch.h"`
`#include "ojph_message.h"`

## Classes

struct | ojph::local::dec_mel_st
| MEL state structure for reading and decoding the MEL bitstream. More...
struct | ojph::local::rev_struct
| A structure for reading and unstuffing a segment that grows backward, such as VLC and MRP. More...
struct | ojph::local::frwd_struct
| State structure for reading and unstuffing of forward-growing bitstreams; these are: MagSgn and SPP bitstreams. More...

## Namespaces

namespace | ojph
namespace | ojph::local

## Functions

static void | ojph::local::mel_read (dec_mel_st *melp)
| Reads and unstuffs the MEL bitstream.
static void | ojph::local::mel_decode (dec_mel_st *melp)
| Decodes unstuffed MEL segment bits stored in tmp to runs.
static void | ojph::local::mel_init (dec_mel_st *melp, ui8 *bbuf, int lcup, int scup)
| Initiates a dec_mel_st structure for MEL decoding and reads some bytes in order to get the read address to a multiple of 4.
static int | ojph::local::mel_get_run (dec_mel_st *melp)
| Retrieves one run from dec_mel_st; if there are no runs stored MEL segment is decoded.
static void | ojph::local::rev_read (rev_struct *vlcp)
| Read and unstuff data from a backwardly-growing segment.
static void | ojph::local::rev_init (rev_struct *vlcp, ui8 *data, int lcup, int scup)
| Initiates the rev_struct structure and reads a few bytes to move the read address to multiple of 4.
static ui32 | ojph::local::rev_fetch (rev_struct *vlcp)
| Retrieves 32 bits from the head of a rev_struct structure.
static ui32 | ojph::local::rev_advance (rev_struct *vlcp, ui32 num_bits)
| Consumes num_bits from a rev_struct structure.
static void | ojph::local::rev_read_mrp (rev_struct *mrp)
| Reads and unstuffs from rev_struct.
static void | ojph::local::rev_init_mrp (rev_struct *mrp, ui8 *data, int lcup, int len2)
| Initialized rev_struct structure for MRP segment, and reads a number of bytes such that the next 32 bits read are from an address that is a multiple of 4.
static ui32 | ojph::local::rev_fetch_mrp (rev_struct *mrp)
| Retrieves 32 bits from the head of a rev_struct structure.
static ui32 | ojph::local::rev_advance_mrp (rev_struct *mrp, ui32 num_bits)
| Consumes num_bits from a rev_struct structure.
template<int X>
static void | ojph::local::frwd_read (frwd_struct *msp)
| Read and unstuffs 32 bits from forward-growing bitstream.
template<int X>
static void | ojph::local::frwd_init (frwd_struct *msp, const ui8 *data, int size)
| Initialize frwd_struct struct and reads some bytes.
static void | ojph::local::frwd_advance (frwd_struct *msp, ui32 num_bits)
| Consume num_bits bits from the bitstream of frwd_struct.
template<int X>
static ui32 | ojph::local::frwd_fetch (frwd_struct *msp)
| Fetches 32 bits from the frwd_struct bitstream.
bool | ojph::local::ojph_decode_codeblock (ui8 *coded_data, ui32 *decoded_data, ui32 missing_msbs, ui32 num_passes, ui32 lengths1, ui32 lengths2, ui32 width, ui32 height, ui32 stride, bool stripe_causal)
| Decodes one codeblock, processing the cleanup, siginificance propagation, and magnitude refinement pass.

## Detailed Description

implements a HTJ2K block decoder