libavcodec/snow.h File Reference

#include "dsputil.h"
#include "dwt.h"
#include "rangecoder.h"
#include "mathops.h"
#include "mpegvideo.h"

Go to the source code of this file.

Data Structures

struct  BlockNode
struct  x_and_coeff
struct  SubBand
struct  Plane
struct  SnowContext

Defines

#define MID_STATE   128
#define MAX_PLANES   4
#define QSHIFT   5
#define QROOT   (1<<QSHIFT)
#define LOSSLESS_QLOG   -128
#define FRAC_BITS   4
#define MAX_REF_FRAMES   8
#define LOG2_OBMC_MAX   8
#define OBMC_MAX   (1<<(LOG2_OBMC_MAX))
#define BLOCK_INTRA   1
#define BLOCK_OPT   2
#define LOG2_MB_SIZE   4
#define MB_SIZE   (1<<LOG2_MB_SIZE)
#define ENCODER_EXTRA_BITS   4
#define HTAPS_MAX   8
#define QBIAS_SHIFT   3
#define ME_CACHE_SIZE   1024
#define QEXPSHIFT   (7-FRAC_BITS+8)

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, IDWTELEM *high)
static av_always_inline void snow_horizontal_compose_lift_lead_out (int i, IDWTELEM *dst, IDWTELEM *src, 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, IDWTELEM *src, IDWTELEM *ref, int width, int w)
int ff_snow_common_init (AVCodecContext *avctx)
int ff_snow_common_init_after_header (AVCodecContext *avctx)
void ff_snow_common_end (SnowContext *s)
void ff_snow_release_buffer (AVCodecContext *avctx)
void ff_snow_reset_contexts (SnowContext *s)
int ff_snow_alloc_blocks (SnowContext *s)
int ff_snow_frame_start (SnowContext *s)
void ff_snow_pred_block (SnowContext *s, uint8_t *dst, uint8_t *tmp, int stride, int sx, int sy, int b_w, int b_h, BlockNode *block, int plane_index, int w, int h)
static void snow_set_blocks (SnowContext *s, int level, int x, int y, int l, int cb, int cr, int mx, int my, int ref, int type)
static void pred_mv (SnowContext *s, int *mx, int *my, int ref, const BlockNode *left, const BlockNode *top, const BlockNode *tr)
static av_always_inline int same_block (BlockNode *a, BlockNode *b)
static av_always_inline void add_yblock (SnowContext *s, int sliced, slice_buffer *sb, IDWTELEM *dst, uint8_t *dst8, const uint8_t *obmc, int src_x, int src_y, int b_w, int b_h, int w, int h, int dst_stride, int src_stride, int obmc_stride, int b_x, int b_y, int add, int offset_dst, int plane_index)
static av_always_inline void predict_slice (SnowContext *s, IDWTELEM *buf, int plane_index, int add, int mb_y)
static av_always_inline void predict_plane (SnowContext *s, IDWTELEM *buf, int plane_index, int add)
static void set_blocks (SnowContext *s, int level, int x, int y, int l, int cb, int cr, int mx, int my, int ref, int type)
static void init_ref (MotionEstContext *c, uint8_t *src[3], uint8_t *ref[3], uint8_t *ref2[3], int x, int y, int ref_index)
static void put_symbol (RangeCoder *c, uint8_t *state, int v, int is_signed)
static int get_symbol (RangeCoder *c, uint8_t *state, int is_signed)
static void put_symbol2 (RangeCoder *c, uint8_t *state, int v, int log2)
static int get_symbol2 (RangeCoder *c, uint8_t *state, int log2)
static void unpack_coeffs (SnowContext *s, SubBand *b, SubBand *parent, int orientation)

Variables

static const BlockNode null_block
const uint8_t *const ff_obmc_tab [4]
uint8_t ff_qexp [QROOT]
int ff_scale_mv_ref [MAX_REF_FRAMES][MAX_REF_FRAMES]
const int8_t ff_quant3bA [256]


Define Documentation

#define BLOCK_INTRA   1

#define BLOCK_OPT   2

Definition at line 51 of file snow.h.

Referenced by iterative_me().

#define ENCODER_EXTRA_BITS   4

Definition at line 67 of file snow.h.

Referenced by encode_frame(), and quantize().

#define FRAC_BITS   4

Definition at line 38 of file snow.h.

#define HTAPS_MAX   8

#define LOG2_MB_SIZE   4

Definition at line 65 of file snow.h.

Referenced by encode_q_branch(), and ff_snow_alloc_blocks().

#define LOG2_OBMC_MAX   8

Definition at line 41 of file snow.h.

Referenced by add_yblock(), ff_snow_inner_add_yblock(), get_block_rd(), and get_dc().

#define LOSSLESS_QLOG   -128

#define MAX_PLANES   4

Definition at line 34 of file snow.h.

#define MAX_REF_FRAMES   8

Definition at line 39 of file snow.h.

Referenced by decode_header(), encode_init(), ff_snow_common_end(), and mca().

#define MB_SIZE   (1<<LOG2_MB_SIZE)

#define ME_CACHE_SIZE   1024

Definition at line 159 of file snow.h.

Referenced by check_4block_inter(), and check_block().

#define MID_STATE   128

Definition at line 32 of file snow.h.

Referenced by decode_header(), encode_header(), and ff_snow_reset_contexts().

#define OBMC_MAX   (1<<(LOG2_OBMC_MAX))

Definition at line 42 of file snow.h.

#define QBIAS_SHIFT   3

Definition at line 152 of file snow.h.

Referenced by decode_subband_slice_buffered(), dequantize(), and dequantize_slice_buffered().

#define QEXPSHIFT   (7-FRAC_BITS+8)

#define QROOT   (1<<QSHIFT)

#define QSHIFT   5


Function Documentation

static av_always_inline void add_yblock ( SnowContext s,
int  sliced,
slice_buffer sb,
IDWTELEM dst,
uint8_t dst8,
const uint8_t obmc,
int  src_x,
int  src_y,
int  b_w,
int  b_h,
int  w,
int  h,
int  dst_stride,
int  src_stride,
int  obmc_stride,
int  b_x,
int  b_y,
int  add,
int  offset_dst,
int  plane_index 
) [static]

Definition at line 280 of file snow.h.

Referenced by get_4block_rd(), get_dc(), predict_slice(), and predict_slice_buffered().

int ff_snow_alloc_blocks ( SnowContext s  ) 

Definition at line 82 of file snow.c.

Referenced by decode_frame(), and encode_init().

void ff_snow_common_end ( SnowContext s  ) 

Definition at line 645 of file snow.c.

Referenced by decode_end(), decode_init(), encode_end(), and encode_init().

int ff_snow_common_init ( AVCodecContext avctx  ) 

Referenced by decode_init(), and encode_init().

int ff_snow_common_init_after_header ( AVCodecContext avctx  ) 

Definition at line 465 of file snow.c.

Referenced by decode_frame(), and encode_frame().

int ff_snow_frame_start ( SnowContext s  ) 

Definition at line 593 of file snow.c.

Referenced by decode_frame(), and encode_frame().

void ff_snow_pred_block ( SnowContext s,
uint8_t dst,
uint8_t tmp,
int  stride,
int  sx,
int  sy,
int  b_w,
int  b_h,
BlockNode block,
int  plane_index,
int  w,
int  h 
)

Definition at line 296 of file snow.c.

Referenced by add_yblock(), and get_block_rd().

void ff_snow_release_buffer ( AVCodecContext avctx  ) 

Definition at line 580 of file snow.c.

Referenced by decode_frame(), encode_frame(), and ff_snow_frame_start().

void ff_snow_reset_contexts ( SnowContext s  ) 

Definition at line 68 of file snow.c.

Referenced by decode_header(), and encode_header().

static int get_symbol ( RangeCoder c,
uint8_t state,
int  is_signed 
) [inline, static]

Definition at line 538 of file snow.h.

static int get_symbol2 ( RangeCoder c,
uint8_t state,
int  log2 
) [inline, static]

Definition at line 578 of file snow.h.

Referenced by unpack_coeffs().

static void init_ref ( MotionEstContext c,
uint8_t src[3],
uint8_t ref[3],
uint8_t ref2[3],
int  x,
int  y,
int  ref_index 
) [inline, static]

Definition at line 485 of file snow.h.

static void pred_mv ( SnowContext s,
int mx,
int my,
int  ref,
const BlockNode left,
const BlockNode top,
const BlockNode tr 
) [inline, static]

Definition at line 254 of file snow.h.

static av_always_inline void predict_plane ( SnowContext s,
IDWTELEM buf,
int  plane_index,
int  add 
) [static]

Definition at line 453 of file snow.h.

Referenced by decode_frame(), and encode_frame().

static av_always_inline void predict_slice ( SnowContext s,
IDWTELEM buf,
int  plane_index,
int  add,
int  mb_y 
) [static]

Definition at line 402 of file snow.h.

Referenced by predict_plane().

static void put_symbol ( RangeCoder c,
uint8_t state,
int  v,
int  is_signed 
) [inline, static]

Definition at line 507 of file snow.h.

static void put_symbol2 ( RangeCoder c,
uint8_t state,
int  v,
int  log2 
) [inline, static]

Definition at line 558 of file snow.h.

Referenced by encode_subband_c0run().

static av_always_inline int same_block ( BlockNode a,
BlockNode b 
) [static]

Definition at line 270 of file snow.h.

Referenced by add_yblock(), encode_q_branch2(), get_4block_rd(), and iterative_me().

static void set_blocks ( SnowContext s,
int  level,
int  x,
int  y,
int  l,
int  cb,
int  cr,
int  mx,
int  my,
int  ref,
int  type 
) [inline, static]

Definition at line 460 of file snow.h.

Referenced by decode_q_branch(), encode_q_branch(), and encode_q_branch2().

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

Definition at line 195 of file snow.h.

static av_always_inline void snow_horizontal_compose_liftS_lead_out ( int  i,
IDWTELEM dst,
IDWTELEM src,
IDWTELEM ref,
int  width,
int  w 
) [static]

Definition at line 205 of file snow.h.

static av_always_inline void snow_interleave_line_footer ( int i,
IDWTELEM low,
IDWTELEM high 
) [static]

Definition at line 188 of file snow.h.

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

Definition at line 179 of file snow.h.

static void snow_set_blocks ( SnowContext s,
int  level,
int  x,
int  y,
int  l,
int  cb,
int  cr,
int  mx,
int  my,
int  ref,
int  type 
) [inline, static]

Definition at line 230 of file snow.h.

static void unpack_coeffs ( SnowContext s,
SubBand b,
SubBand parent,
int  orientation 
) [inline, static]

Definition at line 598 of file snow.h.

Referenced by decode_frame().


Variable Documentation

const uint8_t* const ff_obmc_tab[4]

uint8_t ff_qexp[QROOT]

const int8_t ff_quant3bA[256]

Definition at line 104 of file snowdata.h.

Referenced by encode_subband_c0run(), and unpack_coeffs().

int ff_scale_mv_ref[MAX_REF_FRAMES][MAX_REF_FRAMES]

Definition at line 129 of file snowdata.h.

Referenced by mca(), and pred_mv().

const BlockNode null_block [static]

Initial value:

 { 
    .color= {128,128,128},
    .mx= 0,
    .my= 0,
    .ref= 0,
    .type= 0,
    .level= 0,
}

Definition at line 56 of file snow.h.

Referenced by decode_q_branch(), encode_q_branch(), encode_q_branch2(), and get_block_bits().


Generated on Fri Oct 26 02:50:07 2012 for FFmpeg by  doxygen 1.5.8