[FFmpeg-devel] [PATCH 04/11] avcodec/zmbvenc: use log2 instead of log()/M_LN2

Ganesh Ajjanagadde gajjanag at mit.edu
Thu Oct 29 23:49:39 CET 2015


On Thu, Oct 29, 2015 at 9:25 AM, Michael Niedermayer
<michael at niedermayer.cc> wrote:
> On Thu, Oct 29, 2015 at 12:20:02AM -0400, Ganesh Ajjanagadde wrote:
>> This is likely more precise and conveys the intent better.
>>
>> Signed-off-by: Ganesh Ajjanagadde <gajjanagadde at gmail.com>
>> ---
>>  libavcodec/zmbvenc.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/libavcodec/zmbvenc.c b/libavcodec/zmbvenc.c
>> index df06e37..e832bed 100644
>> --- a/libavcodec/zmbvenc.c
>> +++ b/libavcodec/zmbvenc.c
>> @@ -277,7 +277,7 @@ static av_cold int encode_init(AVCodecContext *avctx)
>>      int lvl = 9;
>>
>>      for(i=1; i<256; i++)
>> -        score_tab[i]= -i * log(i/(double)(ZMBV_BLOCK*ZMBV_BLOCK)) * (256/M_LN2);
>> +        score_tab[i]= -i * log2(i/(double)(ZMBV_BLOCK*ZMBV_BLOCK)) * 256;
>
> Interrestingly this changes the output from
> ffmpeg -i matrixbench_mpeg2.mpg -vcodec zmbv -frames 30  -an -f framecrc -
> for a few frames

not too surprising, there are bit changes for many inputs when one
moves from log/ to log2 etc. See e.g my reply to wm4's original
comments.

>
> the code change looks good though

pushed, thanks.

>
> [...]
> --
> Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
>
> Rewriting code that is poorly written but fully understood is good.
> Rewriting code that one doesnt understand is a sign that one is less smart
> then the original author, trying to rewrite it will not make it better.
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>


More information about the ffmpeg-devel mailing list