#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 BLOCK_INTRA 1 |
Definition at line 50 of file snow.h.
Referenced by check_4block_inter(), check_block(), decode_q_branch(), encode_q_branch(), encode_q_branch2(), ff_snow_pred_block(), get_block_bits(), get_dc(), iterative_me(), and same_block().
#define BLOCK_OPT 2 |
#define ENCODER_EXTRA_BITS 4 |
#define HTAPS_MAX 8 |
Definition at line 68 of file snow.h.
Referenced by decode_header(), ff_snow_pred_block(), get_block_rd(), and mc_block().
#define LOG2_MB_SIZE 4 |
#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 |
Definition at line 37 of file snow.h.
Referenced by decode_frame(), decode_subband_slice_buffered(), dequantize(), dequantize_slice_buffered(), encode_frame(), and quantize().
#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) |
Definition at line 66 of file snow.h.
Referenced by add_yblock(), decode_frame(), encode_blocks(), encode_frame(), encode_init(), ff_snow_pred_block(), get_4block_rd(), get_block_rd(), get_dc(), iterative_me(), mca(), predict_slice(), and predict_slice_buffered().
#define ME_CACHE_SIZE 1024 |
#define MID_STATE 128 |
Definition at line 32 of file snow.h.
Referenced by decode_header(), encode_header(), and ff_snow_reset_contexts().
#define QBIAS_SHIFT 3 |
Definition at line 149 of file snow.h.
Referenced by decode_subband_slice_buffered(), dequantize(), and dequantize_slice_buffered().
#define QEXPSHIFT (7-FRAC_BITS+8) |
Definition at line 499 of file snow.h.
Referenced by decode_subband_slice_buffered(), dequantize(), dequantize_slice_buffered(), and quantize().
#define QROOT (1<<QSHIFT) |
Definition at line 36 of file snow.h.
Referenced by calculate_visual_weight(), decode_subband_slice_buffered(), dequantize(), dequantize_slice_buffered(), init_qexp(), qscale2qlog(), quantize(), and ratecontrol_1pass().
#define QSHIFT 5 |
Definition at line 35 of file snow.h.
Referenced by decode_subband_slice_buffered(), dequantize(), dequantize_slice_buffered(), quantize(), and ratecontrol_1pass().
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 277 of file snow.h.
Referenced by get_4block_rd(), get_dc(), predict_slice(), and predict_slice_buffered().
int ff_snow_alloc_blocks | ( | SnowContext * | s | ) |
void ff_snow_common_end | ( | SnowContext * | s | ) |
int ff_snow_common_init | ( | AVCodecContext * | avctx | ) |
Referenced by decode_init(), and encode_init().
int ff_snow_common_init_after_header | ( | AVCodecContext * | avctx | ) |
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 | |||
) |
void ff_snow_release_buffer | ( | AVCodecContext * | avctx | ) |
Definition at line 551 of file snow.c.
Referenced by decode_frame(), encode_frame(), and ff_snow_frame_start().
void ff_snow_reset_contexts | ( | SnowContext * | s | ) |
static int get_symbol | ( | RangeCoder * | c, | |
uint8_t * | state, | |||
int | is_signed | |||
) | [inline, static] |
static int get_symbol2 | ( | RangeCoder * | c, | |
uint8_t * | state, | |||
int | log2 | |||
) | [inline, static] |
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] |
static void pred_mv | ( | SnowContext * | s, | |
int * | mx, | |||
int * | my, | |||
int | ref, | |||
const BlockNode * | left, | |||
const BlockNode * | top, | |||
const BlockNode * | tr | |||
) | [inline, static] |
static av_always_inline void predict_plane | ( | SnowContext * | s, | |
IDWTELEM * | buf, | |||
int | plane_index, | |||
int | add | |||
) | [static] |
static av_always_inline void predict_slice | ( | SnowContext * | s, | |
IDWTELEM * | buf, | |||
int | plane_index, | |||
int | add, | |||
int | mb_y | |||
) | [static] |
static void put_symbol | ( | RangeCoder * | c, | |
uint8_t * | state, | |||
int | v, | |||
int | is_signed | |||
) | [inline, static] |
static void put_symbol2 | ( | RangeCoder * | c, | |
uint8_t * | state, | |||
int | v, | |||
int | log2 | |||
) | [inline, static] |
Definition at line 267 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 456 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 192 of file snow.h.
Referenced by ff_snow_horizontal_compose97i_mmx(), and ff_snow_horizontal_compose97i_sse2().
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 202 of file snow.h.
Referenced by ff_snow_horizontal_compose97i_mmx(), and ff_snow_horizontal_compose97i_sse2().
static av_always_inline void snow_interleave_line_header | ( | int * | i, | |
int | width, | |||
IDWTELEM * | low, | |||
IDWTELEM * | high | |||
) | [static] |
Definition at line 176 of file snow.h.
Referenced by ff_snow_horizontal_compose97i_mmx(), and ff_snow_horizontal_compose97i_sse2().
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] |
static void unpack_coeffs | ( | SnowContext * | s, | |
SubBand * | b, | |||
SubBand * | parent, | |||
int | orientation | |||
) | [inline, static] |
const uint8_t* const ff_obmc_tab[4] |
Definition at line 123 of file snowdata.h.
Referenced by get_4block_rd(), get_dc(), iterative_me(), predict_slice(), and predict_slice_buffered().
Definition at line 128 of file snowdata.h.
Referenced by decode_subband_slice_buffered(), dequantize(), dequantize_slice_buffered(), init_qexp(), quantize(), and ratecontrol_1pass().
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] |
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().