[x264-devel] Re: bug in x264_validate_parameters(...) concerning the "--analyse" argument ?

Mathieu Carnec mathieu.carnec at univ-nantes.fr
Thu Nov 23 11:22:04 CET 2006


I wasn't talking about the lines 451-455 of encoder.c. I was talking about
lines 447-451 :

	h->param.analyse.inter &=
X264_ANALYSE_PSUB16x16|X264_ANALYSE_PSUB8x8|X264_ANALYSE_BSUB16x16|
					  X264_ANALYSE_I4x4|X264_ANALYSE_I8x8;
	h->param.analyse.intra &= X264_ANALYSE_I4x4|X264_ANALYSE_I8x8;
	if( !(h->param.analyse.inter & X264_ANALYSE_PSUB16x16) )
      	h->param.analyse.inter &= ~X264_ANALYSE_PSUB8x8;

Since this part is in encoder.c, I guess it's intentional too but why ?
What's the purpose of forcing param.analyse.inter to a given value since
it's supposed to be defined using a command line argument ("--analyse") ?

Normally, a variable (param.analyse.inter) like has a given default value
and this value can be overridden by a command line argumement. That's done
in the code but, just after having overridden the variable value using the
command line argument, the variable gets a fixed value. Why ? Does it mean
that the "--analyse" argument is useless ?

What's the purpose of line 447 which enables X264_ANALYSE_PSUB8x8 (using
"....|X264_ANALYSE_PSUB8x8|....") if, on line 450, the condition is always
true and so, on line 451, X264_ANALYSE_PSUB8x8 is disabled ?

I don't believe that this part of code (in encoder.c) is justified. If it is
justified then X264_ANALYSE_PSUB8x8 will always be disabled. Why ?

Regards,

Mathieu.

-----Message d'origine-----
De : x264-devel-bounce at videolan.org
[mailto:x264-devel-bounce at videolan.org]De la part de Loren Merritt
Envoye : jeudi 23 novembre 2006 01:34
A : x264-devel at videolan.org
Objet : [x264-devel] Re: bug in x264_validate_parameters(...) concerning
the "--analyse" argument ?


On Wed, 22 Nov 2006, Mathieu Carnec wrote:

> I think I found a bug in function x264_validate_parameters(...) (in file
> encoder.c) of x264.
>
> The bug shows up in function x264_mb_analyse_intra(...) (in file
analyse.c).
> In this function, I8x8 prediction is avoided while I4x4 prediction is
> performed

This is intentional, and is caused by encoder.c lines 451-455

     if( !h->param.analyse.b_transform_8x8 )
     {
         h->param.analyse.inter &= ~X264_ANALYSE_I8x8;
         h->param.analyse.intra &= ~X264_ANALYSE_I8x8;
     }

--Loren Merritt

--
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html

-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html



More information about the x264-devel mailing list