FFmpeg
Loading...
Searching...
No Matches
snow_dwt.h File Reference
#include <stddef.h>
#include <stdint.h>
#include "libavutil/attributes.h"

Go to the source code of this file.

Data Structures

struct  DWTCompose
 
struct  slice_buffer
 Used to minimize the amount of memory used in order to optimize cache performance. More...
 
struct  SnowDWTContext
 

Macros

#define MAX_DECOMPOSITIONS   8
 
#define DWT_97   0
 
#define DWT_53   1
 
#define liftS   lift
 
#define W_AM   3
 
#define W_AO   0
 
#define W_AS   1
 
#define W_BM   1
 
#define W_BO   8
 
#define W_BS   4
 
#define W_CM   1
 
#define W_CO   0
 
#define W_CS   0
 
#define W_DM   3
 
#define W_DO   4
 
#define W_DS   3
 
#define slice_buffer_get_line(slice_buf, line_num)
 

Functions

static av_always_inline void snow_interleave_line_header (int *i, int width, IDWTELEM *low, IDWTELEM *high)
 
static av_always_inline void snow_interleave_line_footer (int *i, IDWTELEM *low, const IDWTELEM *high)
 
static av_always_inline void snow_horizontal_compose_lift_lead_out (int i, IDWTELEM *dst, const IDWTELEM *src, const IDWTELEM *ref, int width, int w, int lift_high, int mul, int add, int shift)
 
static av_always_inline void snow_horizontal_compose_liftS_lead_out (int i, IDWTELEM *dst, const IDWTELEM *src, const IDWTELEM *ref, int width, int w)
 
int ff_slice_buffer_init (slice_buffer *buf, int line_count, int max_allocated_lines, int line_width, IDWTELEM *base_buffer)
 
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)
 
IDWTELEMff_slice_buffer_load_line (slice_buffer *buf, int line)
 
void ff_snow_inner_add_yblock_c (const uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_stride, IDWTELEM *const *lines, int add, uint8_t *dst8)
 
int ff_w53_32_c (MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t line_size, int h)
 
int ff_w97_32_c (MPVEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t line_size, int h)
 
void ff_spatial_dwt (int *buffer, int *temp, 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 (SnowDWTContext *dsp, DWTCompose *cs, slice_buffer *slice_buf, IDWTELEM *temp, int width, int height, int stride_line, int type, int decomposition_count, int y)
 
void ff_spatial_idwt (IDWTELEM *buffer, IDWTELEM *temp, int width, int height, int stride, int type, int decomposition_count)
 
void ff_dwt_init (SnowDWTContext *c)
 
void ff_dwt_init_x86 (SnowDWTContext *c)
 

Macro Definition Documentation

◆ MAX_DECOMPOSITIONS

#define MAX_DECOMPOSITIONS   8

Definition at line 34 of file snow_dwt.h.

◆ DWT_97

◆ DWT_53

◆ liftS

#define liftS   lift

Definition at line 71 of file snow_dwt.h.

Referenced by horizontal_decompose97i().

◆ W_AM

#define W_AM   3

◆ W_AO

#define W_AO   0

◆ W_AS

#define W_AS   1

◆ W_BM

#define W_BM   1

◆ W_BO

◆ W_BS

◆ W_CM

#define W_CM   1

◆ W_CO

#define W_CO   0

◆ W_CS

#define W_CS   0

◆ W_DM

◆ W_DO

◆ W_DS

◆ slice_buffer_get_line

#define slice_buffer_get_line ( slice_buf,
line_num )
Value:
((slice_buf)->line[line_num] ? (slice_buf)->line[line_num] \
: ff_slice_buffer_load_line((slice_buf), \
(line_num)))
IDWTELEM * ff_slice_buffer_load_line(slice_buffer *buf, int line)
Definition snow_dwt.c:63

Definition at line 89 of file snow_dwt.h.

Referenced by correlate_slice_buffered(), decode_frame(), decode_subband_slice_buffered(), dequantize_slice_buffered(), spatial_compose53i_buffered_init(), spatial_compose53i_dy_buffered(), spatial_compose97i_buffered_init(), and spatial_compose97i_dy_buffered().

Function Documentation

◆ snow_interleave_line_header()

static av_always_inline void snow_interleave_line_header ( int * i,
int width,
IDWTELEM * low,
IDWTELEM * high )
static

Definition at line 96 of file snow_dwt.h.

◆ snow_interleave_line_footer()

static av_always_inline void snow_interleave_line_footer ( int * i,
IDWTELEM * low,
const IDWTELEM * high )
static

Definition at line 106 of file snow_dwt.h.

◆ snow_horizontal_compose_lift_lead_out()

static av_always_inline void snow_horizontal_compose_lift_lead_out ( int i,
IDWTELEM * dst,
const IDWTELEM * src,
const IDWTELEM * ref,
int width,
int w,
int lift_high,
int mul,
int add,
int shift )
static

Definition at line 114 of file snow_dwt.h.

◆ snow_horizontal_compose_liftS_lead_out()

static av_always_inline void snow_horizontal_compose_liftS_lead_out ( int i,
IDWTELEM * dst,
const IDWTELEM * src,
const IDWTELEM * ref,
int width,
int w )
static

Definition at line 123 of file snow_dwt.h.

◆ ff_slice_buffer_init()

int ff_slice_buffer_init ( slice_buffer * buf,
int line_count,
int max_allocated_lines,
int line_width,
IDWTELEM * base_buffer )

Definition at line 29 of file snow_dwt.c.

Referenced by decode_frame().

◆ ff_slice_buffer_release()

void ff_slice_buffer_release ( slice_buffer * buf,
int line )

Definition at line 79 of file snow_dwt.c.

Referenced by decode_frame(), and ff_slice_buffer_flush().

◆ ff_slice_buffer_flush()

void ff_slice_buffer_flush ( slice_buffer * buf)

Definition at line 92 of file snow_dwt.c.

Referenced by decode_frame(), and ff_slice_buffer_destroy().

◆ ff_slice_buffer_destroy()

void ff_slice_buffer_destroy ( slice_buffer * buf)

Definition at line 104 of file snow_dwt.c.

Referenced by decode_end(), and decode_frame().

◆ ff_slice_buffer_load_line()

IDWTELEM * ff_slice_buffer_load_line ( slice_buffer * buf,
int line )

Definition at line 63 of file snow_dwt.c.

◆ ff_snow_inner_add_yblock_c()

void ff_snow_inner_add_yblock_c ( const uint8_t * obmc,
const int obmc_stride,
uint8_t ** block,
int b_w,
int b_h,
int src_x,
int src_stride,
IDWTELEM *const * lines,
int add,
uint8_t * dst8 )

Definition at line 118 of file snow.c.

Referenced by ff_dwt_init().

◆ ff_w53_32_c()

int ff_w53_32_c ( MPVEncContext * v,
const uint8_t * pix1,
const uint8_t * pix2,
ptrdiff_t line_size,
int h )

Definition at line 833 of file snow_dwt.c.

Referenced by get_block_rd().

◆ ff_w97_32_c()

int ff_w97_32_c ( MPVEncContext * v,
const uint8_t * pix1,
const uint8_t * pix2,
ptrdiff_t line_size,
int h )

Definition at line 838 of file snow_dwt.c.

Referenced by get_block_rd().

◆ ff_spatial_dwt()

void ff_spatial_dwt ( int * buffer,
int * temp,
int width,
int height,
int stride,
int type,
int decomposition_count )

Definition at line 320 of file snow_dwt.c.

Referenced by encode_frame(), main(), and w_c().

◆ ff_spatial_idwt_buffered_init()

void ff_spatial_idwt_buffered_init ( DWTCompose * cs,
slice_buffer * sb,
int width,
int height,
int stride_line,
int type,
int decomposition_count )

Definition at line 640 of file snow_dwt.c.

Referenced by decode_frame().

◆ ff_spatial_idwt_buffered_slice()

void ff_spatial_idwt_buffered_slice ( SnowDWTContext * dsp,
DWTCompose * cs,
slice_buffer * slice_buf,
IDWTELEM * temp,
int width,
int height,
int stride_line,
int type,
int decomposition_count,
int y )

Definition at line 659 of file snow_dwt.c.

Referenced by decode_frame().

◆ ff_spatial_idwt()

void ff_spatial_idwt ( IDWTELEM * buffer,
IDWTELEM * temp,
int width,
int height,
int stride,
int type,
int decomposition_count )

Definition at line 732 of file snow_dwt.c.

Referenced by calculate_visual_weight(), encode_frame(), and main().

◆ ff_dwt_init()

void ff_dwt_init ( SnowDWTContext * c)

Definition at line 851 of file snow_dwt.c.

Referenced by checkasm_check_snowdsp(), and ff_snow_common_init().

◆ ff_dwt_init_x86()

void ff_dwt_init_x86 ( SnowDWTContext * c)

Definition at line 332 of file snowdsp_init.c.

Referenced by ff_dwt_init().