libavcodec/ituh263enc.c File Reference

h263 bitstream encoder. More...

#include <limits.h>
#include "dsputil.h"
#include "avcodec.h"
#include "mpegvideo.h"
#include "h263.h"
#include "mathops.h"
#include "unary.h"
#include "flv.h"
#include "mpeg4video.h"
#include "internal.h"

Go to the source code of this file.

Defines

#define UNI_MPEG4_ENC_INDEX(last, run, level)   ((last)*128*64 + (run)*128 + (level))

Functions

av_const int ff_h263_aspect_to_info (AVRational aspect)
 Returns the 4 bit value that specifies the given aspect ratio.
void h263_encode_picture_header (MpegEncContext *s, int picture_number)
void h263_encode_gob_header (MpegEncContext *s, int mb_line)
 Encodes a group of blocks header.
void ff_clean_h263_qscales (MpegEncContext *s)
 modify qscale so that encoding is acually possible in h263 (limit difference to -2.
static void h263_encode_block (MpegEncContext *s, DCTELEM *block, int n)
 encodes a 8x8 block.
static void h263p_encode_umotion (MpegEncContext *s, int val)
void h263_encode_mb (MpegEncContext *s, DCTELEM block[6][64], int motion_x, int motion_y)
void ff_h263_encode_motion (MpegEncContext *s, int val, int f_code)
static void init_mv_penalty_and_fcode (MpegEncContext *s)
static void init_uni_h263_rl_tab (RLTable *rl, uint32_t *bits_tab, uint8_t *len_tab)
void h263_encode_init (MpegEncContext *s)
void ff_h263_encode_mba (MpegEncContext *s)

Variables

static uint8_t mv_penalty [MAX_FCODE+1][MAX_MV *2+1]
 Table of number of bits a motion vector component needs.
static uint8_t fcode_tab [MAX_MV *2+1]
 Minimal fcode that a motion vector component would need.
static uint8_t umv_fcode_tab [MAX_MV *2+1]
 Minimal fcode that a motion vector component would need in umv.
static uint8_t uni_h263_intra_aic_rl_len [64 *64 *2 *2]
static uint8_t uni_h263_inter_rl_len [64 *64 *2 *2]
static const uint8_t wrong_run [102]
static const int dquant_code [5] = {1,0,9,2,3}


Detailed Description

h263 bitstream encoder.

Definition in file ituh263enc.c.


Define Documentation

#define UNI_MPEG4_ENC_INDEX ( last,
run,
level   )     ((last)*128*64 + (run)*128 + (level))


Function Documentation

void ff_clean_h263_qscales ( MpegEncContext s  ) 

modify qscale so that encoding is acually possible in h263 (limit difference to -2.

.2)

Definition at line 276 of file ituh263enc.c.

Referenced by estimate_qp(), and ff_clean_mpeg4_qscales().

av_const int ff_h263_aspect_to_info ( AVRational  aspect  ) 

Returns the 4 bit value that specifies the given aspect ratio.

This may be one of the standard aspect ratios or it specifies that the aspect will be stored explicitly later.

Definition at line 91 of file ituh263enc.c.

Referenced by h263_encode_picture_header(), and mpeg4_encode_vol_header().

void ff_h263_encode_mba ( MpegEncContext s  ) 

void ff_h263_encode_motion ( MpegEncContext s,
int  val,
int  f_code 
)

Definition at line 658 of file ituh263enc.c.

Referenced by ff_h263_encode_motion_vector(), and svq1_encode_plane().

static void h263_encode_block ( MpegEncContext s,
DCTELEM block,
int  n 
) [static]

encodes a 8x8 block.

Parameters:
block the 8x8 block
n block index (0-3 are luma, 4-5 are chroma)

Definition at line 309 of file ituh263enc.c.

Referenced by h263_encode_mb().

void h263_encode_gob_header ( MpegEncContext s,
int  mb_line 
)

Encodes a group of blocks header.

Definition at line 250 of file ituh263enc.c.

Referenced by encode_thread().

void h263_encode_init ( MpegEncContext s  ) 

Definition at line 772 of file ituh263enc.c.

Referenced by MPV_encode_init(), and svq1_encode_init().

void h263_encode_mb ( MpegEncContext s,
DCTELEM  block[6][64],
int  motion_x,
int  motion_y 
)

Definition at line 457 of file ituh263enc.c.

Referenced by encode_mb_internal().

void h263_encode_picture_header ( MpegEncContext s,
int  picture_number 
)

Definition at line 105 of file ituh263enc.c.

Referenced by encode_picture().

static void h263p_encode_umotion ( MpegEncContext s,
int  val 
) [static]

Definition at line 420 of file ituh263enc.c.

Referenced by h263_encode_mb().

static void init_mv_penalty_and_fcode ( MpegEncContext s  )  [static]

Definition at line 687 of file ituh263enc.c.

Referenced by h263_encode_init().

static void init_uni_h263_rl_tab ( RLTable rl,
uint32_t *  bits_tab,
uint8_t *  len_tab 
) [static]

Definition at line 729 of file ituh263enc.c.

Referenced by h263_encode_init().


Variable Documentation

const int dquant_code[5] = {1,0,9,2,3} [static]

Definition at line 302 of file ituh263enc.c.

Referenced by h263_encode_mb(), and mpeg4_encode_mb().

uint8_t fcode_tab[MAX_MV *2+1] [static]

Minimal fcode that a motion vector component would need.

Definition at line 54 of file ituh263enc.c.

Referenced by ff_get_best_fcode(), ff_mpeg1_encode_init(), h263_encode_init(), and init_mv_penalty_and_fcode().

uint8_t mv_penalty[MAX_FCODE+1][MAX_MV *2+1] [static]

uint8_t umv_fcode_tab[MAX_MV *2+1] [static]

Minimal fcode that a motion vector component would need in umv.

All entries in this table are 1.

Definition at line 60 of file ituh263enc.c.

Referenced by h263_encode_init(), and init_mv_penalty_and_fcode().

uint8_t uni_h263_inter_rl_len[64 *64 *2 *2] [static]

Definition at line 65 of file ituh263enc.c.

Referenced by h263_encode_init().

uint8_t uni_h263_intra_aic_rl_len[64 *64 *2 *2] [static]

Definition at line 64 of file ituh263enc.c.

Referenced by h263_encode_init().

const uint8_t wrong_run[102] [static]

Initial value:

 {
 1,  2,  3,  5,  4, 10,  9,  8,
11, 15, 17, 16, 23, 22, 21, 20,
19, 18, 25, 24, 27, 26, 11,  7,
 6,  1,  2, 13,  2,  2,  2,  2,
 6, 12,  3,  9,  1,  3,  4,  3,
 7,  4,  1,  1,  5,  5, 14,  6,
 1,  7,  1,  8,  1,  1,  1,  1,
10,  1,  1,  5,  9, 17, 25, 24,
29, 33, 32, 41,  2, 23, 28, 31,
 3, 22, 30,  4, 27, 40,  8, 26,
 6, 39,  7, 38, 16, 37, 15, 10,
11, 12, 13, 14,  1, 21, 20, 18,
19,  2,  1, 34, 35, 36
}

Definition at line 70 of file ituh263enc.c.

Referenced by h263_encode_block().


Generated on Fri Oct 26 02:36:52 2012 for FFmpeg by  doxygen 1.5.8