|
OpenJPH
Open-source implementation of JPEG2000 Part-15
|
implements a faster HTJ2K block decoder using wasm simd More...
#include <string>#include <iostream>#include <cassert>#include <cstring>#include "ojph_block_common.h"#include "ojph_block_decoder.h"#include "ojph_arch.h"#include "ojph_message.h"#include <wasm_simd128.h>Go to the source code of this file.
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 |
Macros | |
| #define | OJPH_REPEAT2(a) |
| Macros that help with typing and space. | |
| #define | OJPH_REPEAT4(a) |
| #define | OJPH_REPEAT8(a) |
| #define | OJPH_REPEAT16(a) |
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. Note this is designed for an architecture that read size must be compatible with the alignment of the read address. | |
| 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 16 bytes 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 v128_t | ojph::local::frwd_fetch (frwd_struct *msp) |
| Fetches 32 bits from the frwd_struct bitstream. | |
| template<int N> | |
| static v128_t | ojph::local::decode_one_quad32 (const v128_t inf_u_q, v128_t U_q, frwd_struct *magsgn, ui32 p, v128_t &vn) |
| decodes one quad, using 32 bit data | |
| static v128_t | ojph::local::decode_two_quad16 (const v128_t inf_u_q, v128_t U_q, frwd_struct *magsgn, ui32 p, v128_t &vn) |
| decodes twos consecutive quads (one octet), using 16 bit data | |
| bool | ojph::local::ojph_decode_codeblock_wasm (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. | |
implements a faster HTJ2K block decoder using wasm simd
Definition in file ojph_block_decoder_wasm.cpp.
| #define OJPH_REPEAT16 | ( | a | ) |
Definition at line 64 of file ojph_block_decoder_wasm.cpp.
Referenced by ojph::local::frwd_read(), and ojph::local::ojph_decode_codeblock_wasm().
| #define OJPH_REPEAT2 | ( | a | ) |
Macros that help with typing and space.
Definition at line 61 of file ojph_block_decoder_wasm.cpp.
Referenced by ojph::local::ojph_decode_codeblock_wasm().
| #define OJPH_REPEAT4 | ( | a | ) |
Definition at line 62 of file ojph_block_decoder_wasm.cpp.
Referenced by ojph::local::decode_one_quad32(), and ojph::local::ojph_decode_codeblock_wasm().
| #define OJPH_REPEAT8 | ( | a | ) |
Definition at line 63 of file ojph_block_decoder_wasm.cpp.
Referenced by ojph::local::decode_one_quad32(), ojph::local::decode_two_quad16(), and ojph::local::ojph_decode_codeblock_wasm().