#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) |
Return the 4 bit value that specifies the given aspect ratio. | |
void | ff_h263_encode_picture_header (MpegEncContext *s, int picture_number) |
void | ff_h263_encode_gob_header (MpegEncContext *s, int mb_line) |
Encode 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) |
Encode an 8x8 block. | |
static void | h263p_encode_umotion (MpegEncContext *s, int val) |
void | ff_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 | ff_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} |
Definition in file ituh263enc.c.
Definition at line 68 of file ituh263enc.c.
Referenced by init_uni_h263_rl_tab(), init_uni_mpeg4_rl_tab(), mpeg4_encode_block(), and mpeg4_get_block_length().
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 | ) |
Return 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 ff_h263_encode_picture_header(), and mpeg4_encode_vol_header().
void ff_h263_encode_gob_header | ( | MpegEncContext * | s, | |
int | mb_line | |||
) |
Encode a group of blocks header.
Definition at line 250 of file ituh263enc.c.
Referenced by encode_thread().
void ff_h263_encode_init | ( | MpegEncContext * | s | ) |
Definition at line 771 of file ituh263enc.c.
Referenced by MPV_encode_init(), and svq1_encode_init().
void ff_h263_encode_mb | ( | MpegEncContext * | s, | |
DCTELEM | block[6][64], | |||
int | motion_x, | |||
int | motion_y | |||
) |
void ff_h263_encode_mba | ( | MpegEncContext * | s | ) |
Definition at line 832 of file ituh263enc.c.
Referenced by ff_h263_encode_gob_header(), ff_h263_encode_picture_header(), and rv20_encode_picture_header().
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().
void ff_h263_encode_picture_header | ( | MpegEncContext * | s, | |
int | picture_number | |||
) |
static void h263_encode_block | ( | MpegEncContext * | s, | |
DCTELEM * | block, | |||
int | n | |||
) | [static] |
Encode an 8x8 block.
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 ff_h263_encode_mb().
static void h263p_encode_umotion | ( | MpegEncContext * | s, | |
int | val | |||
) | [static] |
static void init_mv_penalty_and_fcode | ( | MpegEncContext * | s | ) | [static] |
static void init_uni_h263_rl_tab | ( | RLTable * | rl, | |
uint32_t * | bits_tab, | |||
uint8_t * | len_tab | |||
) | [static] |
const int dquant_code[5] = {1,0,9,2,3} [static] |
Definition at line 302 of file ituh263enc.c.
Referenced by ff_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_h263_encode_init(), ff_mpeg1_encode_init(), and init_mv_penalty_and_fcode().
uint8_t mv_penalty[MAX_FCODE+1][MAX_MV *2+1] [static] |
Table of number of bits a motion vector component needs.
Definition at line 49 of file ituh263enc.c.
Referenced by epzs_motion_search_internal(), ff_estimate_motion_b(), ff_get_mb_score(), ff_h263_encode_init(), ff_mpeg1_encode_init(), h263_mv4_search(), hpel_motion_search(), init_mv_penalty_and_fcode(), interlaced_search(), qpel_motion_search(), and sab_diamond_search().
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 ff_h263_encode_init(), and init_mv_penalty_and_fcode().
uint8_t uni_h263_inter_rl_len[64 *64 *2 *2] [static] |
uint8_t uni_h263_intra_aic_rl_len[64 *64 *2 *2] [static] |
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().