[FFmpeg-devel] [PATCH] two small h264 optimizations
Alexander Strange
astrange
Tue Aug 14 05:36:40 CEST 2007
#1 ffmpeg-cabacres-switches -
This changes the if (cat == ) .... statements to switch tables.
Adding a default case to case 5: removed most of the speed gain, so I
took out the assert,
but it doesn't affect anything. I can put it back somewhere else if
needed.
#2 ffmpeg-fillrectangle-microopt.diff -
Statements like a = b = c = d = e; store from right-to-left, so if
you write them in the right order it comes out backwards.
This removes them from fill_rectangle().
The last two parts of that could be SIMDed, although obviously
couldn't be selected at runtime.
Times:
before-
BENCHMARKs: VC: 25.151s VO: 1.773s A: 0.000s Sys: 0.184s =
27.108s
BENCHMARKs: VC: 25.136s VO: 1.782s A: 0.000s Sys: 0.184s =
27.102s
BENCHMARKs: VC: 25.152s VO: 1.775s A: 0.000s Sys: 0.184s =
27.111s
BENCHMARKs: VC: 25.147s VO: 1.780s A: 0.000s Sys: 0.185s =
27.112s
BENCHMARKs: VC: 25.161s VO: 1.781s A: 0.000s Sys: 0.184s =
27.127s
avg - 25.15
#1 decode_cabac_residual switches-
BENCHMARKs: VC: 25.096s VO: 1.774s A: 0.000s Sys: 0.182s =
27.052s
BENCHMARKs: VC: 25.102s VO: 1.784s A: 0.000s Sys: 0.183s =
27.069s
BENCHMARKs: VC: 25.106s VO: 1.782s A: 0.000s Sys: 0.184s =
27.073s
BENCHMARKs: VC: 25.102s VO: 1.780s A: 0.000s Sys: 0.185s =
27.067s
BENCHMARKs: VC: 25.107s VO: 1.782s A: 0.000s Sys: 0.184s =
27.073s
avg - 25.103
#1 + #2 fill_rectangle statement changes-
BENCHMARKs: VC: 25.010s VO: 1.778s A: 0.000s Sys: 0.185s =
26.973s
BENCHMARKs: VC: 25.026s VO: 1.775s A: 0.000s Sys: 0.183s =
26.984s
BENCHMARKs: VC: 25.014s VO: 1.784s A: 0.000s Sys: 0.184s =
26.982s
BENCHMARKs: VC: 25.013s VO: 1.778s A: 0.000s Sys: 0.184s =
26.975s
BENCHMARKs: VC: 25.023s VO: 1.779s A: 0.000s Sys: 0.184s =
26.986s
avg - 25.017
??
More information about the ffmpeg-devel
mailing list