View Full Version : Manual compressiblity test?


bur
18th January 2009, 20:45
Since I had some problems with Enc, I tried doing an compressibility check manually. I used this script:

function Comptest(clip c, float percent)
{
frange = floor(14./(percent/100.))
return SelectRangeEvery(c, frange, 14)
}

which I found on the net. But I don't know if these values are considered good. I especially wonder if 14 frames, about half a second, are enough for movies with many dialogues ie rather static frames.

Also what codec settings should be used? I did a single pass with cq=3 because that's what I was using for the 1st pass as well. But I wonder if cq=1 would be better for a compressibility check.

edit:After thinking about the whole thing for a while I'm not sure I really get what the test means... :)
The resulting percentage is the actual bitrate opposed to the selected bitrate, is that true? But then, why are values aroung 40-50% considered "good"? What's the problem if you get the bitrate you specified and get a 100% percent result?

henryho_hk
26th February 2009, 08:08
When calculating the output size, you need to exclude the one or two frames adjacent to the "artificial" scene changes.

The compressibility test gives you an idea how tough your material is, in relation to the specified compression parameters. Hence we are always using CQ mode (obviously, one-pass CBR or two-pass does not make sense for such a purpose). The comp. test figures are more reliable when it is performed in similar parameters as your final encodes. I guess you won't expect to have your final encodes at quantizer 1 in most frames, right?

Quantizer 3 looks "good" on H.263 and all custom matrices. If your comp. test at cq=3 gives 100% or above, congratulations to you. (Or your denoise filters are too strong. lol)

henryho_hk
14th May 2009, 07:57
I was asked to implement compressibility test using Mencoder (on VOB sources). Do you guys know if I can perform a "SelectRangeEvery()" in the Mencoder options/filters?

Sharktooth
14th May 2009, 11:21
uhm, i think not.

buzzqw
14th May 2009, 13:59
Do you guys know if I can perform a "SelectRangeEvery()" in the Mencoder options/filters?

yes, but on windows build isn't working
it's the -ss (step parameter)

you can also try to use the EDL fuction.. but on windows isn't working well too

BHH

Sharktooth
14th May 2009, 17:16
well, that was why i told him: i "think" not...
i had a vague memory that stepping was broken on windows... speaking of which... are there any updates?

buzzqw
14th May 2009, 19:47
last try (-ss) fails miserable, a month ago

so.. no.. not working for me

BHH

henryho_hk
15th May 2009, 03:12
I thought -ss receives time-marks only. And to implement SelectRangeEvery(), I need to specify thousands of -ss and -endpos..... seems not very feasible. Why don't they implement frame-based selection?

I have met another problem. To obtain a frame (size) list in mencoder, I could not find any method but doing a (fake) 1st pass to generate the 1st pass stat file. Unfortunately, Mencoder always do it in CQ2, no matter I specify a zone at cq3 or specify the I/P quant. limits.

Still a long way to go....