FFmpeg
Data Structures | Macros | Typedefs | Functions
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_s
 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)
 

Typedefs

typedef int DWTELEM
 
typedef short IDWTELEM
 

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 (const uint8_t *obmc, const int obmc_stride, uint8_t **block, int b_w, int b_h, int src_x, int src_y, int src_stride, slice_buffer *sb, int add, uint8_t *dst8)
 
int ff_w53_32_c (struct MpegEncContext *v, const uint8_t *pix1, const uint8_t *pix2, ptrdiff_t line_size, int h)
 
int ff_w97_32_c (struct MpegEncContext *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

#define DWT_97   0

Definition at line 70 of file snow_dwt.h.

◆ DWT_53

#define DWT_53   1

Definition at line 71 of file snow_dwt.h.

◆ liftS

#define liftS   lift

Definition at line 73 of file snow_dwt.h.

◆ W_AM

#define W_AM   3

Definition at line 74 of file snow_dwt.h.

◆ W_AO

#define W_AO   0

Definition at line 75 of file snow_dwt.h.

◆ W_AS

#define W_AS   1

Definition at line 76 of file snow_dwt.h.

◆ W_BM

#define W_BM   1

Definition at line 79 of file snow_dwt.h.

◆ W_BO

#define W_BO   8

Definition at line 80 of file snow_dwt.h.

◆ W_BS

#define W_BS   4

Definition at line 81 of file snow_dwt.h.

◆ W_CM

#define W_CM   1

Definition at line 83 of file snow_dwt.h.

◆ W_CO

#define W_CO   0

Definition at line 84 of file snow_dwt.h.

◆ W_CS

#define W_CS   0

Definition at line 85 of file snow_dwt.h.

◆ W_DM

#define W_DM   3

Definition at line 87 of file snow_dwt.h.

◆ W_DO

#define W_DO   4

Definition at line 88 of file snow_dwt.h.

◆ W_DS

#define W_DS   3

Definition at line 89 of file snow_dwt.h.

◆ 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)))

Definition at line 91 of file snow_dwt.h.

Typedef Documentation

◆ DWTELEM

typedef int DWTELEM

Definition at line 29 of file snow_dwt.h.

◆ IDWTELEM

typedef short IDWTELEM

Definition at line 32 of file snow_dwt.h.

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 98 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 108 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 116 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 125 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()

void ff_snow_inner_add_yblock ( const uint8_t *  obmc,
const int  obmc_stride,
uint8_t **  block,
int  b_w,
int  b_h,
int  src_x,
int  src_y,
int  src_stride,
slice_buffer *  sb,
int  add,
uint8_t *  dst8 
)

Definition at line 30 of file snow.c.

Referenced by ff_dwt_init().

◆ ff_w53_32_c()

int ff_w53_32_c ( struct MpegEncContext 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 ( struct MpegEncContext 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 ff_snow_common_init().

◆ ff_dwt_init_x86()

void ff_dwt_init_x86 ( SnowDWTContext c)

Definition at line 881 of file snowdsp.c.

Referenced by ff_dwt_init().

line
Definition: graph2dot.c:48
ff_slice_buffer_load_line
IDWTELEM * ff_slice_buffer_load_line(slice_buffer *buf, int line)
Definition: snow_dwt.c:63