JM8.6代码文件结构
总结一下, JM8.6中比较重要的源代码文件
[block.c]用于处理一个块
void |
intrapred_luma (int img_x, int img_y, int *left_available, int *up_available, int *all_available) |
void |
|
int |
dct_luma_16x16 (int new_intra_mode) |
int |
dct_luma (int block_x, int block_y, int *coeff_cost, int old_intra_mode) |
int |
dct_chroma (int uv, int cr_cbp) |
[decoder.c] "decoders in the encoder
void |
decode_one_b8block (int decoder, int mbmode, int b8block, int b8mode, int b8ref) |
|||
void |
decode_one_mb (int decoder, Macroblock *currMB) |
|||
void |
Get_Reference_Block (byte **imY, int block_y, int block_x, int mvhor, int mvver, byte **out) |
|||
Get_Reference_Pixel (byte **imY, int y_pos, int x_pos) |
||||
void |
||||
void |
DecOneForthPix (byte **dY, byte ***dref) |
|||
void |
compute_residue_b8block (int b8block, int i16mode) |
|||
void |
compute_residue_mb (int i16mode) |
|||
void |
Build_Status_Map (byte **s_map) |
|||
void |
Error_Concealment (byte **inY, byte **s_map, byte ***refY) |
|||
void |
Conceal_Error (byte **inY, int mb_y, int mb_x, byte ***refY, byte **s_map) |
|||
|
||||
void |
code_a_picture (Picture *pic) |
|||
void |
frame_picture (Picture *frame) |
|||
static int |
writeout_picture (Picture *pic) |
|||
static int |
picture_structure_decision (Picture *frame, Picture *top, Picture *bot) |
|||
static void |
distortion_fld (float *dis_fld_y, float *dis_fld_u, float *dis_fld_v) |
|||
static void |
find_snr () |
|||
static void |
||||
static void |
frame_mode_buffer (int bit_frame, float snr_frame_y, float snr_frame_u, float snr_frame_v) |
|||
static void |
init_frame () |
|||
static void |
||||
static void |
||||
static void |
||||
static Sourceframe * |
AllocSourceframe (int xs, int ys) |
|||
static void |
FreeSourceframe (Sourceframe *sf) |
|||
static void |
ReadOneFrame (int FrameNoInFile, int HeaderSize, int xs, int ys, Sourceframe *sf) |
|||
static void |
||||
static int |
||||
int |
||||
static void |
||||
static void |
GenerateFullPelRepresentation (pel_t **Fourthpel, pel_t *Fullpel, int xsize, int ysize) |
|||
void |
||||
dummy_slice_too_big (int bits_slice) |
||||
void |
copy_rdopt_data (int bot_block) |
|||
static void |
GenerateFieldComponent (char *src, char *top, char *bot, int xs, int ys) |
[lencod.c]主函数所在文件
void |
|
void |
|
int |
main (int argc, char **argv) |
void |
|
void |
init_poc () |
void |
CAVLC_init () |
void |
init_img () |
void |
free_img () |
Picture * |
|
void |
free_picture (Picture *pic) |
int |
|
void |
|
int |
get_mem_mv (int *******mv) |
int |
get_mem_ACcoeff (int *****cofAC) |
void |
|
void |
|
void |
SetImgType () |
[macroblock.c] Process one macroblock
void |
set_MB_parameters (int mb_addr) |
void |
|
void |
start_macroblock (int mb_addr, int mb_field) |
void |
terminate_macroblock (Boolean *end_of_slice, Boolean *recode_macroblock) |
int |
slice_too_big (int rlc_bits) |
void |
OneComponentLumaPrediction4x4 (int *mpred, int pic_pix_x, int pic_pix_y, int *mv, int ref, StorablePicture **list) |
void |
copyblock4x4 (int *mpred, int block[BLOCK_SIZE][BLOCK_SIZE]) |
void |
LumaPrediction4x4 (int block_x, int block_y, int p_dir, int fw_mode, int bw_mode, int fw_ref_idx, int bw_ref_idx) |
int |
LumaResidualCoding8x8 (int *cbp, int *cbp_blk, int block8x8, int p_dir, int fw_mode, int bw_mode, int fw_refframe, int bw_refframe) |
void |
SetModesAndRefframe (int b8, int *p_dir, int *fw_mode, int *bw_mode, int *fw_ref, int *bw_ref) |
void |
|
void |
OneComponentChromaPrediction4x4 (int *mpred, int block_c_x, int block_c_y, int ******mv, int list_idx, int ref, int blocktype, int uv) |
void |
IntraChromaPrediction4x4 (int uv, int block_x, int block_y) |
void |
ChromaPrediction4x4 (int uv, int block_x, int block_y, int p_dir, int fw_mode, int bw_mode, int fw_ref_idx, int bw_ref_idx) |
void |
ChromaResidualCoding (int *cr_cbp) |
void |
IntraChromaPrediction8x8 (int *mb_up, int *mb_left, int *mb_up_left) |
int |