#include "libavutil/attributes.h"
#include "dsputil.h"
#include "dwt.h"
#include "libavcodec/x86/dwt.h"
Go to the source code of this file.
Defines | |
#define | LIFT(src, ref, inv) ((src) + ((inv) ? - (ref) : + (ref))) |
#define | LIFT(src, ref, inv) ((src) + ((inv) ? - (ref) : + (ref))) |
#define | LIFTS(src, ref, inv) |
#define | LIFTS(src, ref, inv) |
Functions | |
void | ff_slice_buffer_init (slice_buffer *buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM *base_buffer) |
IDWTELEM * | ff_slice_buffer_load_line (slice_buffer *buf, int line) |
void | ff_slice_buffer_release (slice_buffer *buf, int line) |
void | ff_slice_buffer_flush (slice_buffer *buf) |
void | ff_slice_buffer_destroy (slice_buffer *buf) |
static int | mirror (int v, int m) |
static av_always_inline void | lift (DWTELEM *dst, DWTELEM *src, DWTELEM *ref, int dst_step, int src_step, int ref_step, int width, int mul, int add, int shift, int highpass, int inverse) |
static av_always_inline void | inv_lift (IDWTELEM *dst, IDWTELEM *src, IDWTELEM *ref, int dst_step, int src_step, int ref_step, int width, int mul, int add, int shift, int highpass, int inverse) |
static av_always_inline void | liftS (DWTELEM *dst, DWTELEM *src, DWTELEM *ref, int dst_step, int src_step, int ref_step, int width, int mul, int add, int shift, int highpass, int inverse) |
static av_always_inline void | inv_liftS (IDWTELEM *dst, IDWTELEM *src, IDWTELEM *ref, int dst_step, int src_step, int ref_step, int width, int mul, int add, int shift, int highpass, int inverse) |
static void | horizontal_decompose53i (DWTELEM *b, int width) |
static void | vertical_decompose53iH0 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | vertical_decompose53iL0 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | spatial_decompose53i (DWTELEM *buffer, int width, int height, int stride) |
static void | horizontal_decompose97i (DWTELEM *b, int width) |
static void | vertical_decompose97iH0 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | vertical_decompose97iH1 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | vertical_decompose97iL0 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | vertical_decompose97iL1 (DWTELEM *b0, DWTELEM *b1, DWTELEM *b2, int width) |
static void | spatial_decompose97i (DWTELEM *buffer, int width, int height, int stride) |
void | ff_spatial_dwt (DWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count) |
static void | horizontal_compose53i (IDWTELEM *b, int width) |
static void | vertical_compose53iH0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose53iL0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | spatial_compose53i_buffered_init (DWTCompose *cs, slice_buffer *sb, int height, int stride_line) |
static void | spatial_compose53i_init (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
static void | spatial_compose53i_dy_buffered (DWTCompose *cs, slice_buffer *sb, int width, int height, int stride_line) |
static void | spatial_compose53i_dy (DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride) |
static void av_unused | spatial_compose53i (IDWTELEM *buffer, int width, int height, int stride) |
void | ff_snow_horizontal_compose97i (IDWTELEM *b, int width) |
static void | vertical_compose97iH0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose97iH1 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose97iL0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose97iL1 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
void | ff_snow_vertical_compose97i (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width) |
static void | spatial_compose97i_buffered_init (DWTCompose *cs, slice_buffer *sb, int height, int stride_line) |
static void | spatial_compose97i_init (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
static void | spatial_compose97i_dy_buffered (DWTContext *dsp, DWTCompose *cs, slice_buffer *sb, int width, int height, int stride_line) |
static void | spatial_compose97i_dy (DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride) |
static void av_unused | spatial_compose97i (IDWTELEM *buffer, int width, int height, int stride) |
void | ff_spatial_idwt_buffered_init (DWTCompose *cs, slice_buffer *sb, int width, int height, int stride_line, int type, int decomposition_count) |
void | ff_spatial_idwt_buffered_slice (DWTContext *dsp, DWTCompose *cs, slice_buffer *slice_buf, int width, int height, int stride_line, int type, int decomposition_count, int y) |
static void | ff_spatial_idwt_init (DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count) |
static void | ff_spatial_idwt_slice (DWTCompose *cs, IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count, int y) |
void | ff_spatial_idwt (IDWTELEM *buffer, int width, int height, int stride, int type, int decomposition_count) |
static int | w_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int w, int h, int type) |
static int | w53_8_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
static int | w97_8_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
static int | w53_16_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
static int | w97_16_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | ff_w53_32_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
int | ff_w97_32_c (void *v, uint8_t *pix1, uint8_t *pix2, int line_size, int h) |
void | ff_dsputil_init_dwt (DSPContext *c) |
void | ff_dwt_init (DWTContext *c) |
static av_always_inline void | interleave (IDWTELEM *dst, IDWTELEM *src0, IDWTELEM *src1, int w2, int add, int shift) |
static void | horizontal_compose_dirac53i (IDWTELEM *b, IDWTELEM *temp, int w) |
static void | horizontal_compose_dd97i (IDWTELEM *b, IDWTELEM *tmp, int w) |
static void | horizontal_compose_dd137i (IDWTELEM *b, IDWTELEM *tmp, int w) |
static av_always_inline void | horizontal_compose_haari (IDWTELEM *b, IDWTELEM *temp, int w, int shift) |
static void | horizontal_compose_haar0i (IDWTELEM *b, IDWTELEM *temp, int w) |
static void | horizontal_compose_haar1i (IDWTELEM *b, IDWTELEM *temp, int w) |
static void | horizontal_compose_fidelityi (IDWTELEM *b, IDWTELEM *tmp, int w) |
static void | horizontal_compose_daub97i (IDWTELEM *b, IDWTELEM *temp, int w) |
static void | vertical_compose_dirac53iH0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose_dd97iH0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, int width) |
static void | vertical_compose_dd137iL0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, int width) |
static void | vertical_compose_haar (IDWTELEM *b0, IDWTELEM *b1, int width) |
static void | vertical_compose_fidelityiH0 (IDWTELEM *dst, IDWTELEM *b[8], int width) |
static void | vertical_compose_fidelityiL0 (IDWTELEM *dst, IDWTELEM *b[8], int width) |
static void | vertical_compose_daub97iH0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose_daub97iH1 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose_daub97iL0 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | vertical_compose_daub97iL1 (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width) |
static void | spatial_compose_dd97i_dy (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose_dirac53i_dy (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose_dd137i_dy (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose_haari_dy (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose_fidelity (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose_daub97i_dy (DWTContext *d, int level, int width, int height, int stride) |
static void | spatial_compose97i_init2 (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
static void | spatial_compose53i_init2 (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
static void | spatial_compose_dd97i_init (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
static void | spatial_compose_dd137i_init (DWTCompose *cs, IDWTELEM *buffer, int height, int stride) |
int | ff_spatial_idwt_init2 (DWTContext *d, IDWTELEM *buffer, int width, int height, int stride, enum dwt_type type, int decomposition_count, IDWTELEM *temp) |
void | ff_spatial_idwt_slice2 (DWTContext *d, int y) |
int | ff_spatial_idwt2 (IDWTELEM *buffer, int width, int height, int stride, enum dwt_type type, int decomposition_count, IDWTELEM *temp) |
#define LIFT | ( | src, | |||
ref, | |||||
inv | ) | ((src) + ((inv) ? - (ref) : + (ref))) |
#define LIFT | ( | src, | |||
ref, | |||||
inv | ) | ((src) + ((inv) ? - (ref) : + (ref))) |
Referenced by inv_lift(), and lift().
#define LIFTS | ( | src, | |||
ref, | |||||
inv | ) |
Value:
((inv) ? \ (src) + (((ref) + 4 * (src)) >> shift): \ -((-16 * (src) + (ref) + add / 4 + 1 + (5 << 25)) / (5 * 4) - (1 << 23)))
#define LIFTS | ( | src, | |||
ref, | |||||
inv | ) |
Value:
((inv) ? \ (src) + (((ref) + 4 * (src)) >> shift): \ -((-16 * (src) + (ref) + add / 4 + 1 + (5 << 25)) / (5 * 4) - (1 << 23)))
Referenced by inv_liftS(), and liftS().
void ff_dsputil_init_dwt | ( | DSPContext * | c | ) |
void ff_dwt_init | ( | DWTContext * | c | ) |
void ff_slice_buffer_destroy | ( | slice_buffer * | buf | ) |
void ff_slice_buffer_flush | ( | slice_buffer * | buf | ) |
void ff_slice_buffer_init | ( | slice_buffer * | buf, | |
int | line_count, | |||
int | max_allocated_lines, | |||
int | line_width, | |||
IDWTELEM * | base_buffer | |||
) |
IDWTELEM* ff_slice_buffer_load_line | ( | slice_buffer * | buf, | |
int | line | |||
) |
void ff_slice_buffer_release | ( | slice_buffer * | buf, | |
int | line | |||
) |
void ff_snow_horizontal_compose97i | ( | IDWTELEM * | b, | |
int | width | |||
) |
void ff_spatial_dwt | ( | DWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride, | |||
int | type, | |||
int | decomposition_count | |||
) |
void ff_spatial_idwt | ( | IDWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride, | |||
int | type, | |||
int | decomposition_count | |||
) |
void ff_spatial_idwt_buffered_init | ( | DWTCompose * | cs, | |
slice_buffer * | sb, | |||
int | width, | |||
int | height, | |||
int | stride_line, | |||
int | type, | |||
int | decomposition_count | |||
) |
void ff_spatial_idwt_buffered_slice | ( | DWTContext * | dsp, | |
DWTCompose * | cs, | |||
slice_buffer * | slice_buf, | |||
int | width, | |||
int | height, | |||
int | stride_line, | |||
int | type, | |||
int | decomposition_count, | |||
int | y | |||
) |
static void ff_spatial_idwt_init | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | width, | |||
int | height, | |||
int | stride, | |||
int | type, | |||
int | decomposition_count | |||
) | [static] |
int ff_spatial_idwt_init2 | ( | DWTContext * | d, | |
IDWTELEM * | buffer, | |||
int | width, | |||
int | height, | |||
int | stride, | |||
enum dwt_type | type, | |||
int | decomposition_count, | |||
IDWTELEM * | temp | |||
) |
Definition at line 1260 of file dwt.c.
Referenced by dirac_decode_frame_internal(), and ff_spatial_idwt2().
static void ff_spatial_idwt_slice | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | width, | |||
int | height, | |||
int | stride, | |||
int | type, | |||
int | decomposition_count, | |||
int | y | |||
) | [static] |
void ff_spatial_idwt_slice2 | ( | DWTContext * | d, | |
int | y | |||
) |
Definition at line 1357 of file dwt.c.
Referenced by dirac_decode_frame_internal(), and ff_spatial_idwt2().
int ff_w53_32_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
int ff_w97_32_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) |
static void horizontal_compose53i | ( | IDWTELEM * | b, | |
int | width | |||
) | [static] |
Definition at line 407 of file dwt.c.
Referenced by spatial_compose53i_dy(), and spatial_compose53i_dy_buffered().
static av_always_inline void horizontal_compose_haari | ( | IDWTELEM * | b, | |
IDWTELEM * | temp, | |||
int | w, | |||
int | shift | |||
) | [static] |
Definition at line 915 of file dwt.c.
Referenced by horizontal_compose_haar0i(), and horizontal_compose_haar1i().
static void horizontal_decompose53i | ( | DWTELEM * | b, | |
int | width | |||
) | [static] |
static void horizontal_decompose97i | ( | DWTELEM * | b, | |
int | width | |||
) | [static] |
static av_always_inline void interleave | ( | IDWTELEM * | dst, | |
IDWTELEM * | src0, | |||
IDWTELEM * | src1, | |||
int | w2, | |||
int | add, | |||
int | shift | |||
) | [static] |
Definition at line 850 of file dwt.c.
Referenced by audio_resample(), filter_samples(), horizontal_compose_dirac53i(), horizontal_compose_fidelityi(), horizontal_compose_haari(), and put_image().
static av_always_inline void lift | ( | DWTELEM * | dst, | |
DWTELEM * | src, | |||
DWTELEM * | ref, | |||
int | dst_step, | |||
int | src_step, | |||
int | ref_step, | |||
int | width, | |||
int | mul, | |||
int | add, | |||
int | shift, | |||
int | highpass, | |||
int | inverse | |||
) | [static] |
Definition at line 103 of file dwt.c.
Referenced by horizontal_decompose53i(), and horizontal_decompose97i().
static int mirror | ( | int | v, | |
int | m | |||
) | [inline, static] |
Definition at line 94 of file dwt.c.
Referenced by compose(), decompose(), put_image(), spatial_compose53i_buffered_init(), spatial_compose53i_dy(), spatial_compose53i_dy_buffered(), spatial_compose53i_init(), spatial_compose53i_init2(), spatial_compose97i_buffered_init(), spatial_compose97i_dy(), spatial_compose97i_dy_buffered(), spatial_compose97i_init(), spatial_compose97i_init2(), spatial_compose_daub97i_dy(), spatial_compose_dirac53i_dy(), spatial_decompose53i(), and spatial_decompose97i().
static void av_unused spatial_compose53i | ( | IDWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose53i_buffered_init | ( | DWTCompose * | cs, | |
slice_buffer * | sb, | |||
int | height, | |||
int | stride_line | |||
) | [static] |
static void spatial_compose53i_dy | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
Definition at line 487 of file dwt.c.
Referenced by ff_spatial_idwt_slice(), and spatial_compose53i().
static void spatial_compose53i_dy_buffered | ( | DWTCompose * | cs, | |
slice_buffer * | sb, | |||
int | width, | |||
int | height, | |||
int | stride_line | |||
) | [static] |
static void spatial_compose53i_init | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
Definition at line 454 of file dwt.c.
Referenced by ff_spatial_idwt_init(), and spatial_compose53i().
static void spatial_compose53i_init2 | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void av_unused spatial_compose97i | ( | IDWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose97i_buffered_init | ( | DWTCompose * | cs, | |
slice_buffer * | sb, | |||
int | height, | |||
int | stride_line | |||
) | [static] |
static void spatial_compose97i_dy | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
Definition at line 645 of file dwt.c.
Referenced by ff_spatial_idwt_slice(), and spatial_compose97i().
static void spatial_compose97i_dy_buffered | ( | DWTContext * | dsp, | |
DWTCompose * | cs, | |||
slice_buffer * | sb, | |||
int | width, | |||
int | height, | |||
int | stride_line | |||
) | [static] |
static void spatial_compose97i_init | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
Definition at line 608 of file dwt.c.
Referenced by ff_spatial_idwt_init(), and spatial_compose97i().
static void spatial_compose97i_init2 | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_daub97i_dy | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_dd137i_dy | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_dd137i_init | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_dd97i_dy | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_dd97i_init | ( | DWTCompose * | cs, | |
IDWTELEM * | buffer, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_dirac53i_dy | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_fidelity | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_compose_haari_dy | ( | DWTContext * | d, | |
int | level, | |||
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_decompose53i | ( | DWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void spatial_decompose97i | ( | DWTELEM * | buffer, | |
int | width, | |||
int | height, | |||
int | stride | |||
) | [static] |
static void vertical_compose53iH0 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 432 of file dwt.c.
Referenced by spatial_compose53i_dy(), and spatial_compose53i_dy_buffered().
static void vertical_compose53iL0 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 440 of file dwt.c.
Referenced by ff_spatial_idwt_init2(), spatial_compose53i_dy(), and spatial_compose53i_dy_buffered().
static void vertical_compose97iH0 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 549 of file dwt.c.
Referenced by spatial_compose97i_dy(), and spatial_compose97i_dy_buffered().
static void vertical_compose97iH1 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 557 of file dwt.c.
Referenced by spatial_compose97i_dy(), and spatial_compose97i_dy_buffered().
static void vertical_compose97iL0 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 565 of file dwt.c.
Referenced by spatial_compose97i_dy(), and spatial_compose97i_dy_buffered().
static void vertical_compose97iL1 | ( | IDWTELEM * | b0, | |
IDWTELEM * | b1, | |||
IDWTELEM * | b2, | |||
int | width | |||
) | [static] |
Definition at line 577 of file dwt.c.
Referenced by spatial_compose97i_dy(), and spatial_compose97i_dy_buffered().
static int w53_16_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) | [static] |
static int w53_8_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) | [static] |
static int w97_16_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) | [static] |
static int w97_8_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | h | |||
) | [static] |
static int w_c | ( | void * | v, | |
uint8_t * | pix1, | |||
uint8_t * | pix2, | |||
int | line_size, | |||
int | w, | |||
int | h, | |||
int | type | |||
) | [inline, static] |
Definition at line 738 of file dwt.c.
Referenced by ff_w53_32_c(), ff_w97_32_c(), w53_16_c(), w53_8_c(), w97_16_c(), and w97_8_c().