#include <limits.h>
#include "global.h"
#include "image.h"
#include "macroblock.h"
#include "mb_access.h"
#include "rdopt_coding_state.h"
#include "mode_decision.h"
#include "rdopt.h"
#include "rd_intra_jm.h"
#include "q_around.h"
#include "intra4x4.h"
#include "intra8x8.h"
#include "md_common.h"
#include "transform8x8.h"
#include "md_distortion.h"
#include "elements.h"
#include "symbol.h"
Go to the source code of this file.
Functions | |
int | MBType2Value (Macroblock *currMB) |
int | Mode_Decision_for_4x4IntraBlocks_JM_High (Macroblock *currMB, int b8, int b4, double lambda, double *min_cost) |
int | Mode_Decision_for_8x8IntraBlocks_JM_High (Macroblock *currMB, int b8, double lambda, double *min_cost) |
int | Mode_Decision_for_IntraSubMBlocks (Macroblock *currMB, int b8, double lambda, double *cost, int non_zero[3]) |
int | Mode_Decision_for_Intra4x4Macroblock (Macroblock *currMB, double lambda, double *cost) |
void | Intra16x16_Mode_Decision_SAD (Macroblock *currMB) |
double | min_rdcost_16x16 (Macroblock *currMB, double lambda) |
void | Intra16x16_Mode_Decision_RDopt (Macroblock *currMB, double lambda) |
Definition in file rd_intra_jm.c.
void Intra16x16_Mode_Decision_RDopt | ( | Macroblock * | currMB, | |
double | lambda | |||
) |
Intra 16x16 mode decision using Rate-Distortion Optimization.
Definition at line 589 of file rd_intra_jm.c.
References intrapred_16x16(), and min_rdcost_16x16().
Referenced by RDCost_for_macroblocks().
void Intra16x16_Mode_Decision_SAD | ( | Macroblock * | currMB | ) |
Intra 16x16 mode decision.
Definition at line 429 of file rd_intra_jm.c.
References intrapred_16x16(), and macroblock::p_slice.
Referenced by RDCost_for_macroblocks().
int MBType2Value | ( | Macroblock * | currMB | ) |
Converts macroblock type to coding value.
Definition at line 1602 of file macroblock.c.
References macroblock::mb_type, macroblock::p_slice, slice::slice_type, and ZeroRef().
Referenced by min_rdcost_16x16(), writeMBLayerBSlice(), and writeMBLayerPSlice().
double min_rdcost_16x16 | ( | Macroblock * | currMB, | |
double | lambda | |||
) |
Find best Intra_16x16 mode based on min RDCost.
< pixel position p(0,-1)
< pixel positions p(-1, -1..15)
Definition at line 450 of file rd_intra_jm.c.
References assignSE2partition, slice::cofAC, slice::cofDC, compute_SSE16x16(), syntaxelement::len, macroblock::mb_type, MBType2Value(), macroblock::opix_y, storable_picture::p_curr_img, macroblock::p_Img, macroblock::p_slice, slice::partArr, img_par::pCurImg, macroblock::pix_x, macroblock::pix_y, slice::slice_type, syntaxelement::type, inp_par_enc::UseConstrainedIntraPred, syntaxelement::value1, and syntaxelement::value2.
Referenced by Intra16x16_Mode_Decision_RDopt().
int Mode_Decision_for_4x4IntraBlocks_JM_High | ( | Macroblock * | currMB, | |
int | b8, | |||
int | b4, | |||
double | lambda, | |||
double * | min_cost | |||
) |
Mode Decision for an 4x4 Intra block.
Definition at line 46 of file rd_intra_jm.c.
References img_par::AdaptiveRounding, img_par::ARCofAdj4x4, slice::cofAC, copy_4x4block(), get4x4Neighbour(), get_intrapred_4x4(), storable_picture::imgY, img_par::ipredmode, slice::mb_ores, slice::mb_pred, slice::mpr_4x4, img_par::nz_coeff, macroblock::opix_y, macroblock::p_Img, macroblock::p_slice, img_par::pCurImg, macroblock::pix_x, macroblock::pix_y, set_intrapred_4x4(), slice::slice_type, store_adaptive_rounding_4x4(), update_adaptive_rounding_4x4(), and inp_par_enc::UseConstrainedIntraPred.
Referenced by init_rdopt().
int Mode_Decision_for_8x8IntraBlocks_JM_High | ( | Macroblock * | currMB, | |
int | b8, | |||
double | lambda, | |||
double * | min_cost | |||
) |
8x8 Intra mode decision for a macroblock - High complexity
Definition at line 220 of file rd_intra_jm.c.
References img_par::AdaptiveRounding, img_par::ARCofAdj8x8, macroblock::block_x, macroblock::block_y, slice::cofAC, copy_image_data_8x8(), get4x4Neighbour(), get_intrapred_8x8(), storable_picture::imgY, macroblock::intra_pred_modes8x8, img_par::ipredmode, img_par::ipredmode8x8, slice::mb_ores, slice::mb_pred, slice::mpr_8x8, macroblock::opix_y, macroblock::p_Img, macroblock::p_slice, img_par::pCurImg, macroblock::pix_x, macroblock::pix_y, set_intrapred_8x8(), and inp_par_enc::UseConstrainedIntraPred.
Referenced by init_rdopt().
int Mode_Decision_for_Intra4x4Macroblock | ( | Macroblock * | currMB, | |
double | lambda, | |||
double * | cost | |||
) |
4x4 Intra mode decision for an macroblock
Definition at line 388 of file rd_intra_jm.c.
References Mode_Decision_for_IntraSubMBlocks(), and macroblock::p_slice.
Referenced by encode_one_macroblock_low(), and RDCost_for_macroblocks().
int Mode_Decision_for_IntraSubMBlocks | ( | Macroblock * | currMB, | |
int | b8, | |||
double | lambda, | |||
double * | cost, | |||
int | non_zero[3] | |||
) |
Mode Decision for an 8x8 Intra block.
Definition at line 358 of file rd_intra_jm.c.
References macroblock::p_slice.
Referenced by Mode_Decision_for_Intra4x4Macroblock().