FFmpeg
Data Structures | Macros | Typedefs | Enumerations | Functions
dwt.h File Reference
#include <stdint.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  DWTContext
 

Macros

#define MAX_DWT_SUPPORT   8
 
#define MAX_DECOMPOSITIONS   8
 
#define COMPOSE_53iL0(b0, b1, b2)   (b1 - ((b0 + b2 + 2) >> 2))
 
#define COMPOSE_DIRAC53iH0(b0, b1, b2)   (b1 + ((b0 + b2 + 1) >> 1))
 
#define COMPOSE_DD97iH0(b0, b1, b2, b3, b4)   (b2 + ((-b0 + 9*b1 + 9*b3 - b4 + 8) >> 4))
 
#define COMPOSE_DD137iL0(b0, b1, b2, b3, b4)   (b2 - ((-b0 + 9*b1 + 9*b3 - b4 + 16) >> 5))
 
#define COMPOSE_HAARiL0(b0, b1)   (b0 - ((b1 + 1) >> 1))
 
#define COMPOSE_HAARiH0(b0, b1)   (b0 + b1)
 
#define COMPOSE_FIDELITYiL0(b0, b1, b2, b3, b4, b5, b6, b7, b8)   (b4 - ((-8*(b0+b8) + 21*(b1+b7) - 46*(b2+b6) + 161*(b3+b5) + 128) >> 8))
 
#define COMPOSE_FIDELITYiH0(b0, b1, b2, b3, b4, b5, b6, b7, b8)   (b4 + ((-2*(b0+b8) + 10*(b1+b7) - 25*(b2+b6) + 81*(b3+b5) + 128) >> 8))
 
#define COMPOSE_DAUB97iL1(b0, b1, b2)   (b1 - ((1817*(b0 + b2) + 2048) >> 12))
 
#define COMPOSE_DAUB97iH1(b0, b1, b2)   (b1 - (( 113*(b0 + b2) + 64) >> 7))
 
#define COMPOSE_DAUB97iL0(b0, b1, b2)   (b1 + (( 217*(b0 + b2) + 2048) >> 12))
 
#define COMPOSE_DAUB97iH0(b0, b1, b2)   (b1 + ((6497*(b0 + b2) + 2048) >> 12))
 
#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
 
typedef struct DWTCompose DWTCompose
 
typedef struct slice_buffer_s slice_buffer
 Used to minimize the amount of memory used in order to optimize cache performance.
 
typedef void(* vertical_compose_2tap )(IDWTELEM *b0, IDWTELEM *b1, int width)
 
typedef void(* vertical_compose_3tap )(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width)
 
typedef void(* vertical_compose_5tap )(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, int width)
 
typedef void(* vertical_compose_9tap )(IDWTELEM *dst, IDWTELEM *b[8], int width)
 
typedef struct DWTContext DWTContext
 

Enumerations

enum  dwt_type {
  DWT_SNOW_DAUB9_7, DWT_SNOW_LEGALL5_3, DWT_DIRAC_DD9_7, DWT_DIRAC_LEGALL5_3,
  DWT_DIRAC_DD13_7, DWT_DIRAC_HAAR0, DWT_DIRAC_HAAR1, DWT_DIRAC_FIDELITY,
  DWT_DIRAC_DAUB9_7, DWT_NUM_TYPES
}
 

Functions

int ff_spatial_idwt_init2 (DWTContext *d, IDWTELEM *buffer, int width, int height, int stride, enum dwt_type type, int decomposition_count, IDWTELEM *temp)
 
int ff_spatial_idwt2 (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_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_vertical_compose97i (IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, IDWTELEM *b5, int width)
 
void ff_snow_horizontal_compose97i (IDWTELEM *b, IDWTELEM *temp, int width)
 
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 (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_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 (DWTContext *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 (DWTContext *c)
 
void ff_dwt_init_x86 (DWTContext *c)
 

Macro Definition Documentation

#define COMPOSE_53iL0 (   b0,
  b1,
  b2 
)    (b1 - ((b0 + b2 + 2) >> 2))

Definition at line 115 of file dwt.h.

Referenced by horizontal_compose_dd97i(), and horizontal_compose_dirac53i().

#define COMPOSE_DAUB97iH0 (   b0,
  b1,
  b2 
)    (b1 + ((6497*(b0 + b2) + 2048) >> 12))

Definition at line 148 of file dwt.h.

Referenced by horizontal_compose_daub97i(), and vertical_compose_daub97iH0().

#define COMPOSE_DAUB97iH1 (   b0,
  b1,
  b2 
)    (b1 - (( 113*(b0 + b2) + 64) >> 7))

Definition at line 142 of file dwt.h.

Referenced by horizontal_compose_daub97i(), and vertical_compose_daub97iH1().

#define COMPOSE_DAUB97iL0 (   b0,
  b1,
  b2 
)    (b1 + (( 217*(b0 + b2) + 2048) >> 12))

Definition at line 145 of file dwt.h.

Referenced by horizontal_compose_daub97i(), and vertical_compose_daub97iL0().

#define COMPOSE_DAUB97iL1 (   b0,
  b1,
  b2 
)    (b1 - ((1817*(b0 + b2) + 2048) >> 12))

Definition at line 139 of file dwt.h.

Referenced by horizontal_compose_daub97i(), and vertical_compose_daub97iL1().

#define COMPOSE_DD137iL0 (   b0,
  b1,
  b2,
  b3,
  b4 
)    (b2 - ((-b0 + 9*b1 + 9*b3 - b4 + 16) >> 5))

Definition at line 124 of file dwt.h.

Referenced by horizontal_compose_dd137i(), and vertical_compose_dd137iL0().

#define COMPOSE_DD97iH0 (   b0,
  b1,
  b2,
  b3,
  b4 
)    (b2 + ((-b0 + 9*b1 + 9*b3 - b4 + 8) >> 4))
#define COMPOSE_DIRAC53iH0 (   b0,
  b1,
  b2 
)    (b1 + ((b0 + b2 + 1) >> 1))

Definition at line 118 of file dwt.h.

Referenced by horizontal_compose_dirac53i(), and vertical_compose_dirac53iH0().

#define COMPOSE_FIDELITYiH0 (   b0,
  b1,
  b2,
  b3,
  b4,
  b5,
  b6,
  b7,
  b8 
)    (b4 + ((-2*(b0+b8) + 10*(b1+b7) - 25*(b2+b6) + 81*(b3+b5) + 128) >> 8))

Definition at line 136 of file dwt.h.

Referenced by horizontal_compose_fidelityi(), and vertical_compose_fidelityiH0().

#define COMPOSE_FIDELITYiL0 (   b0,
  b1,
  b2,
  b3,
  b4,
  b5,
  b6,
  b7,
  b8 
)    (b4 - ((-8*(b0+b8) + 21*(b1+b7) - 46*(b2+b6) + 161*(b3+b5) + 128) >> 8))

Definition at line 133 of file dwt.h.

Referenced by horizontal_compose_fidelityi(), and vertical_compose_fidelityiL0().

#define COMPOSE_HAARiH0 (   b0,
  b1 
)    (b0 + b1)

Definition at line 130 of file dwt.h.

Referenced by horizontal_compose_haari(), and vertical_compose_haar().

#define COMPOSE_HAARiL0 (   b0,
  b1 
)    (b0 - ((b1 + 1) >> 1))

Definition at line 127 of file dwt.h.

Referenced by horizontal_compose_haari(), and vertical_compose_haar().

#define DWT_53   1
#define DWT_97   0
#define liftS   lift

Definition at line 156 of file dwt.h.

#define MAX_DECOMPOSITIONS   8

Definition at line 30 of file dwt.h.

Referenced by decode_frame(), decode_header(), ff_snow_reset_contexts(), and ff_spatial_idwt().

#define MAX_DWT_SUPPORT   8

Definition at line 29 of file dwt.h.

#define slice_buffer_get_line (   slice_buf,
  line_num 
)
#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

Typedef Documentation

typedef struct DWTCompose DWTCompose
typedef struct DWTContext DWTContext
typedef int DWTELEM

Definition at line 26 of file dwt.h.

typedef short IDWTELEM

Definition at line 27 of file dwt.h.

typedef struct slice_buffer_s slice_buffer

Used to minimize the amount of memory used in order to optimize cache performance.

typedef void(* vertical_compose_2tap)(IDWTELEM *b0, IDWTELEM *b1, int width)

Definition at line 57 of file dwt.h.

typedef void(* vertical_compose_3tap)(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, int width)

Definition at line 58 of file dwt.h.

typedef void(* vertical_compose_5tap)(IDWTELEM *b0, IDWTELEM *b1, IDWTELEM *b2, IDWTELEM *b3, IDWTELEM *b4, int width)

Definition at line 59 of file dwt.h.

typedef void(* vertical_compose_9tap)(IDWTELEM *dst, IDWTELEM *b[8], int width)

Definition at line 60 of file dwt.h.

Enumeration Type Documentation

enum dwt_type
Enumerator:
DWT_SNOW_DAUB9_7 
DWT_SNOW_LEGALL5_3 
DWT_DIRAC_DD9_7 
DWT_DIRAC_LEGALL5_3 
DWT_DIRAC_DD13_7 
DWT_DIRAC_HAAR0 
DWT_DIRAC_HAAR1 
DWT_DIRAC_FIDELITY 
DWT_DIRAC_DAUB9_7 
DWT_NUM_TYPES 

Definition at line 91 of file dwt.h.

Function Documentation

void ff_dwt_init ( DWTContext c)

Definition at line 856 of file dwt.c.

Referenced by mca().

void ff_dwt_init_x86 ( DWTContext c)

Definition at line 878 of file snowdsp.c.

Referenced by ff_dwt_init().

void ff_slice_buffer_destroy ( slice_buffer buf)

Definition at line 100 of file dwt.c.

Referenced by decode_end(), and decode_frame().

void ff_slice_buffer_flush ( slice_buffer buf)

Definition at line 92 of file dwt.c.

Referenced by decode_frame(), and ff_slice_buffer_destroy().

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 dwt.c.

Referenced by decode_frame().

IDWTELEM* ff_slice_buffer_load_line ( slice_buffer buf,
int  line 
)

Definition at line 63 of file dwt.c.

void ff_slice_buffer_release ( slice_buffer buf,
int  line 
)

Definition at line 79 of file dwt.c.

Referenced by decode_frame(), and ff_slice_buffer_flush().

void ff_snow_horizontal_compose97i ( IDWTELEM b,
IDWTELEM temp,
int  width 
)

Definition at line 471 of file dwt.c.

Referenced by ff_dwt_init(), and spatial_compose97i_dy().

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 36 of file snow.c.

Referenced by ff_dwt_init().

void ff_snow_vertical_compose97i ( IDWTELEM b0,
IDWTELEM b1,
IDWTELEM b2,
IDWTELEM b3,
IDWTELEM b4,
IDWTELEM b5,
int  width 
)

Definition at line 535 of file dwt.c.

Referenced by ff_dwt_init().

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

Definition at line 325 of file dwt.c.

Referenced by encode_frame(), and w_c().

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

Definition at line 737 of file dwt.c.

Referenced by calculate_visual_weight(), and encode_frame().

int ff_spatial_idwt2 ( IDWTELEM buffer,
int  width,
int  height,
int  stride,
enum dwt_type  type,
int  decomposition_count,
IDWTELEM temp 
)

Definition at line 1389 of file dwt.c.

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 645 of file dwt.c.

Referenced by decode_frame().

void ff_spatial_idwt_buffered_slice ( DWTContext 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 664 of file dwt.c.

Referenced by decode_frame().

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 1278 of file dwt.c.

Referenced by dirac_decode_frame_internal(), and ff_spatial_idwt2().

void ff_spatial_idwt_slice2 ( DWTContext d,
int  y 
)

Definition at line 1375 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 
)

Definition at line 838 of file dwt.c.

Referenced by get_block_rd().

int ff_w97_32_c ( void v,
uint8_t pix1,
uint8_t pix2,
int  line_size,
int  h 
)

Definition at line 843 of file dwt.c.

Referenced by get_block_rd().