/*!\endcond */ /*!\brief Main per frame entry point for second pass of two pass encode * *\ingrouprate_control * *Thisfunctioniscalledforeachframeinthesecondpassofatwopass *encode.ItcheckstheframetypeandifanewKForGF/ARFisdue. *WhenaKFisdueitcallsfind_next_key_frame()toworkouthowlong *thiskeyframegroupwillbeandassignbitstothekeyframe. *AtthestartofanewGF/ARFgroupitcallscalculate_gf_length() *anddefine_gf_group()whicharethemainfunctionsresponsiblefor *definingthesizeandstructureofthenewGF/ARFgroup. * *\param[in]cpiTop-levelencoderinstancestructure *\param[in]frame_paramsPerframeencodingparameters *\param[in]frame_flagsFrametypeandcodingflags * *\remarkNoreturnbutanalysesfirstpassstatsandassignsatarget *numberofbitstothecurrentframeandatargetQrange.
*/ void av1_get_second_pass_params(struct AV1_COMP *cpi, struct EncodeFrameParams *const frame_params, unsignedint frame_flags);
/*!\brief Adjustments to two pass and rate control after each frame. * *\ingrouprate_control * *Thisfunctioniscalledaftereachframetomakeadjustmentsto *heuristicsanddatastructuresthatrelatetoratecontrol. * *\param[in]cpiTop-levelencoderinstancestructure * *\remarkNoreturnvaluebutthisfunctionupdatesvariousratecontrol *relateddatastructuresthatforexampletrackovershootand *undershoot.
*/ void av1_twopass_postencode_update(struct AV1_COMP *cpi);
int av1_calc_arf_boost(const TWO_PASS *twopass, const TWO_PASS_FRAME *twopass_frame, const PRIMARY_RATE_CONTROL *p_rc, FRAME_INFO *frame_info, int offset, int f_frames, int b_frames, int *num_fpstats_used, int *num_fpstats_required, int project_gfu_boost); #ifdef __cplusplus
} // extern "C" #endif
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.