/* *Lumaintraedgepreparation. * *x/y/start/w/hareinlumablock(4px)units: *-xandyaretheabsoluteblockpositionsintheimage; *-start/w/harethe*dependenttile*boundarypositions.Inpractice,start *isthehorizontaltilestart,wisthehorizontaltileend,thevertical *tilestartisassumedtobe0andhistheverticalimageend. * *edge_flagssignalswhichedgesareavailableforthistransform-blockinside *thegivenpartition,aswellasforthepartitioninsidethesuperblock *structure. * *dstandstridearepointerstothetop/leftpositionofthecurrentblock, *andcanbeusedtolocatethetop,left,top/left,top/rightandbottom/left *edgepointersalso. * *angleistheangle_delta[-3..3]oninput,andtheabsoluteangleonoutput. * *modeistheintrapredictionmodeascodedinthebitstream.Thereturnvalue *isthissamemode,convertedtoanindexintheDSPfunctions. * *tw/tharethesizeofthetransformblockinblock(4px)units. * *topleft_outisapointertoscratchmemorythatwillbefilledwiththeedge *pixels.Thememoryarrayshouldhavespacetobeindexedinthe[-2*w,2*w] *range,inthefollowingorder: *-[0]willbethetop/leftedgepixel; *-[1..w]willbethetopedgepixels(1beingleft-most,wbeingright-most); *-[w+1..2*w]willbethetop/rightedgepixels; *-[-1..-w]willbetheleftedgepixels(-1beingtop-most,-wbeingbottom- *most); *-[-w-1..-2*w]willbethebottom/leftedgepixels. *Eachedgemayremainuninitializedifitisnotusedbythereturnedmode *index.Ifedgesarenotavailable(becausetheedgepositionisoutsidethe *tiledimensionsorbecauseedge_flagsindicateslackofedgeavailability), *theywillbeextendedfromnearbyedgesasdefinedbytheav1spec.
*/ enum IntraPredMode
bytefn(dav1d_prepare_intra_edges)(int x, int have_left, int y, int have_top, int w, int h, enum EdgeFlags edge_flags, const pixel *dst, ptrdiff_t stride, const pixel *prefilter_toplevel_sb_edge, enum IntraPredMode mode, int *angle, int tw, int th, int filter_edge,
pixel *topleft_out HIGHBD_DECL_SUFFIX);
// These flags are OR'd with the angle argument into intra predictors. // ANGLE_USE_EDGE_FILTER_FLAG signals that edges should be convolved // with a filter before using them to predict values in a block. // ANGLE_SMOOTH_EDGE_FLAG means that edges are smooth and should use // reduced filter strength. #define ANGLE_USE_EDGE_FILTER_FLAG 1024 #define ANGLE_SMOOTH_EDGE_FLAG 512
staticinlineint sm_flag(const BlockContext *const b, constint idx) { if (!b->intra[idx]) return0; constenum IntraPredMode m = b->mode[idx]; return (m == SMOOTH_PRED || m == SMOOTH_H_PRED ||
m == SMOOTH_V_PRED) ? ANGLE_SMOOTH_EDGE_FLAG : 0;
}
staticinlineint sm_uv_flag(const BlockContext *const b, constint idx) { constenum IntraPredMode m = b->uvmode[idx]; return (m == SMOOTH_PRED || m == SMOOTH_H_PRED ||
m == SMOOTH_V_PRED) ? ANGLE_SMOOTH_EDGE_FLAG : 0;
}
#endif/* DAV1D_SRC_IPRED_PREPARE_H */
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-08-23)
¤
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.