Logo Search packages:      
Sourcecode: blender version File versions

svq1.c File Reference


Detailed Description

Sorenson Vector Quantizer #1 (SVQ1) video codec. For more information of the SVQ1 algorithm, visit: http://www.pcisys.net/~melanson/codecs/

Definition in file svq1.c.

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <limits.h>
#include "common.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "bswap.h"
#include <assert.h>
#include "svq1_cb.h"
#include "svq1_vlc.h"

Go to the source code of this file.

Classes

struct  svq1_pmv_s
struct  SVQ1Context

Defines

#define QUALITY_THRESHOLD   100
#define SVQ1_ADD_CODEBOOK()
#define SVQ1_BLOCK_INTER   1
#define SVQ1_BLOCK_INTER_4V   2
#define SVQ1_BLOCK_INTRA   3
#define SVQ1_BLOCK_SKIP   0
#define SVQ1_CALC_CODEBOOK_ENTRIES(cbook)
#define SVQ1_DO_CODEBOOK_INTRA()
#define SVQ1_DO_CODEBOOK_NONINTRA()
#define SVQ1_PROCESS_VECTOR()
#define THRESHOLD_MULTIPLIER   0.6

Typedefs

typedef struct svq1_pmv_s svq1_pmv_t

Functions

static int encode_block (SVQ1Context *s, uint8_t *src, uint8_t *ref, uint8_t *decoded, int stride, int level, int threshold, int lambda, int intra)
static int svq1_decode_block_intra (GetBitContext *bitbuf, uint8_t *pixels, int pitch)
static int svq1_decode_block_non_intra (GetBitContext *bitbuf, uint8_t *pixels, int pitch)
static int svq1_decode_delta_block (MpegEncContext *s, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv_t *motion, int x, int y)
static int svq1_decode_end (AVCodecContext *avctx)
static int svq1_decode_frame (AVCodecContext *avctx, void *data, int *data_size, uint8_t *buf, int buf_size)
static int svq1_decode_frame_header (GetBitContext *bitbuf, MpegEncContext *s)
static int svq1_decode_init (AVCodecContext *avctx)
static int svq1_decode_motion_vector (GetBitContext *bitbuf, svq1_pmv_t *mv, svq1_pmv_t **pmv)
static int svq1_motion_inter_4v_block (MpegEncContext *s, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv_t *motion, int x, int y)
static int svq1_motion_inter_block (MpegEncContext *s, GetBitContext *bitbuf, uint8_t *current, uint8_t *previous, int pitch, svq1_pmv_t *motion, int x, int y)
static uint16_t svq1_packet_checksum (uint8_t *data, int length, int value)
static void svq1_parse_string (GetBitContext *bitbuf, uint8_t *out)
static void svq1_skip_block (uint8_t *current, uint8_t *previous, int pitch, int x, int y)
static void svq1_write_header (SVQ1Context *s, int frame_type)

Variables

static const uint16_t checksum_table [256]
const uint8_t mvtab [33][2]
static const uint8_t string_table [256]
static VLC svq1_block_type
AVCodec svq1_decoder
struct {
   int   height
   int   width
svq1_frame_size_table [8]
static VLC svq1_inter_mean
static VLC svq1_inter_multistage [6]
static VLC svq1_intra_mean
static VLC svq1_intra_multistage [6]
static VLC svq1_motion_component


Generated by  Doxygen 1.6.0   Back to index