[MPlayer-dev-eng] comprehensive lavcopts test - in progress. NODAEMON

Roberto Ragusa mail at robertoragusa.it
Tue Jun 22 16:15:00 CEST 2004


On Mon, 14 Jun 2004 23:56:38 +0000
Roman Gaufman <hackeron at dsl.pipex.com> wrote:

> After I run this test, I will see what performs best and start grouping 
> together, which will lead to another test.

May I suggest to use a genetic algorithm?

0) choose a number N (for example, 30 or more)
1) have N different combination of options (manually chosen in a random way or
among more used ones or more promising ones)
2) test them all, obtaining N results
3) sort the results (this can be done usign PSNR and file size but human
observation would be better for psycovisual effects evaluation)
4) discard one half of the worst 2/3*N combinations (that is N/3)
5) create N/3 new combinations using random couples of the survived 2/3*N
6) test the new N/3 combinations
7) goto 3

Notes:
- validate if the options make sense after generating a new combination
  and if an identical combination is already in the current population
- have a result cache to avoid testing the same combination more than one time
- the creation in phase 5 could work for example in this way:
  for each option: with probability=45% inherit from parent A,
  p=45% inherit from parent B, p=10% choose at random (genetic mutation)
  (or 35%/35%/30% for a more random exploration in the first stages)
- after sorting in phase 3 you can declare who is winning until now
- more running time of the algorithm means better winners
- the N/3 and 1/2*(2/3*N) rule is to avoid brutally discarding bad combinations
  which could create interesting children when used as a parent

Advantages:
- this method is able to discover that options A and B are good together while
each being bad alone (extend this reasoning to three options A,B,C and so on)
- even if the number of cases is too big to do a full search, the interesting
part of the option space are automatically explored
- when new options are introduced the search can be restarted (using the best
known combinations as starting point, if you want)

This method is really powerful.

-- 
   Roberto Ragusa    mail at robertoragusa.it




More information about the MPlayer-dev-eng mailing list