mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
avcodec/elbg: Mark ELBGContext as being unaliased by using av_restrict
This improves performance: For msvideo1, the performance improved by 4.8% when encoding the sample from the fate-vsynth1-msvideo1 test; when encoding the sample from fate-vsynth1-cinepak, performance improved by 2%. The compiler user was GCC 10 and the calls to encode2 have been timed. Reviewed-by: Tomas Härdin <tjoppen@acc.umu.se> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
6b2c1d1018
commit
bb98212930
@ -346,7 +346,7 @@ static void do_shiftings(ELBGContext *elbg)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void do_elbg(ELBGContext *elbg, int *points, int numpoints,
|
static void do_elbg(ELBGContext *av_restrict elbg, int *points, int numpoints,
|
||||||
int max_steps)
|
int max_steps)
|
||||||
{
|
{
|
||||||
int *const size_part = elbg->size_part;
|
int *const size_part = elbg->size_part;
|
||||||
@ -419,7 +419,7 @@ static void do_elbg(ELBGContext *elbg, int *points, int numpoints,
|
|||||||
* If not, it calls do_elbg for a (smaller) random sample of the points in
|
* If not, it calls do_elbg for a (smaller) random sample of the points in
|
||||||
* points.
|
* points.
|
||||||
*/
|
*/
|
||||||
static void init_elbg(ELBGContext *elbg, int *points, int *temp_points,
|
static void init_elbg(ELBGContext *av_restrict elbg, int *points, int *temp_points,
|
||||||
int numpoints, int max_steps)
|
int numpoints, int max_steps)
|
||||||
{
|
{
|
||||||
int dim = elbg->dim;
|
int dim = elbg->dim;
|
||||||
@ -447,7 +447,7 @@ int avpriv_elbg_do(ELBGContext **elbgp, int *points, int dim, int numpoints,
|
|||||||
int *codebook, int num_cb, int max_steps,
|
int *codebook, int num_cb, int max_steps,
|
||||||
int *closest_cb, AVLFG *rand_state, uintptr_t flags)
|
int *closest_cb, AVLFG *rand_state, uintptr_t flags)
|
||||||
{
|
{
|
||||||
ELBGContext *const elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg));
|
ELBGContext *const av_restrict elbg = *elbgp ? *elbgp : av_mallocz(sizeof(*elbg));
|
||||||
|
|
||||||
if (!elbg)
|
if (!elbg)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
Loading…
Reference in New Issue
Block a user