digitalFAQ.com Forums [Archives]

digitalFAQ.com Forums [Archives] (http://www.digitalfaq.com/archives/)
-   Video Encoding and Conversion (http://www.digitalfaq.com/archives/encode/)
-   -   Mencoder: Mencoder ratecontrol (http://www.digitalfaq.com/archives/encode/8971-mencoder-mencoder-ratecontrol.html)

bilu 04-05-2004 07:36 AM

Mencoder ratecontrol
 
From the man page:

Quote:

vqblur=<0.0-1.0> (pass 1)
Quantizer blur, larger values will average the quantizer more over time (slower change).

0.0 qblur disabled
0.5 (default)
1.0 average the quantizer over all previous frames

vqblur=<0.0-99.0> (pass 2)
Quantizer gaussian blur, larger values will average the quantizer more over time (slower change) (default: 0.5).

vqcomp=<value>
quantizer compression, depends upon vrc_eq (pass 1/2) (default: 0.5)

vrc_eq=<equation>
main ratecontrol equation (pass 1/2):

1 constant bitrate

tex constant quality

1+(tex/avgTex-1)*qComp approximately the equation of the old ratecontrol code

tex^qComp with qcomp 0.5 or something like that (default)

infix operators: +,-,*,/,^

variables:

tex texture complexity

iTex,pTex intra, non intra texture complexity

avgTex average texture complexity

avgIITex average intra texture complexity in I frames

avgPITex average intra texture complexity in P frames

avgPPTex average non intra texture complexity in P frames

avgBPTex average non intra texture complexity in B frames

mv Bits used for motion vectors

fCode maximum length of motion vector in log2 scale

iCount number of intra macro blocks / number of macro blocks

var spatial complexity

mcVar temporal complexity

qComp qcomp from the command line

isI, isP, isB is 1 if picture type is I/P/B else 0

Pi,E see your favorite math book

functions:

max(a,b),min(a,b) maximum / minimum

gt(a,b) is 1 if a>b, 0 otherwise

lt(a,b) is 1 if a<b, 0 otherwise

eq(a,b) is 1 if a==b, 0 otherwise

sin, cos, tan, sinh, cosh, tanh, exp, log, abs
I think it's time to tune the ratecontrol.

I'll try vrc_eq=avgTex to see if it comes out more predictable.
Instead of aiming at constant quality with vrc_eq=tex or vqcomp=1 (the default formula is tex^vqcomp) we'll aim at average quality.

Maybe this is the best bitrate delay option we have for high bitrate peaks.

I'd like others to try avgTex and other options you like and provide feedback.

Thanks in advance,
Bilu

digitall.doc 04-05-2004 05:05 PM

Very good this new approach bilu, I'll try to find a minute to test it.
If I understand you well, you want to test this to avoid high bitrate peaks, isn't it?. You want mencoder to lower quantizer before raising bitrate, is that OK?.
But, why do you want to lower bitrate peaks (they're now within DVD specifications)?. Is that to decrease file size?.

bilu 04-05-2004 05:16 PM

Quote:

Originally Posted by digitall.doc
If I understand you well, you want to test this to avoid high bitrate peaks, isn't it?

Yep.
Quote:

You want mencoder to lower quantizer before raising bitrate, is that OK?.
I want to increase the quantizer when raising the bitrate, but not as aggressive as vre_eq=1 would be. Instead of using vrc_eq=tex and leaving the ratecontrol in the hands of the bitrate peaks, I want to enforce a "bitrate delay" increasing quantizer when the complexity increases. High motion will get a bit worst but low motion will be better.
Quote:

But, why do you want to lower bitrate peaks (they're now within DVD specifications)?. Is that to decrease file size?.
I'm trying to go with your 3000 Kbps bitrate challenge ;)


Bilu

digitall.doc 04-06-2004 03:45 AM

Quote:

Originally Posted by bilu
I'm trying to go with your 3000 Kbps bitrate challenge ;)

Sorry bilu, I've been writing a lot lately... I don't remember anything about 3000 Kbps...
Anyway, are you aiming to lower bitrate peaks in order to decrease final file size?. Since I think we'd better go quantitation way...

Well, now at work. Next post (I hope) will be to tell how was it with vrc_eq=avgTex :wink: (let see how it works)

digitall.doc 04-06-2004 03:48 PM

This thing has been a lot frustrating :evil:
I might be doing something wrong.
Don't know if you already tested this rate control thing bilu, from your posts I see you at least tested tex vs avgTex.

As I promised I tested several ways of rate control: tex, avgTex, var, mcVar, 1, ((tex^3)*var*mcVar)^0.2 and (as the last was giving me errors) ((tex*2)+var+mcVar)/4

And... no changes :!: :!: :!: . In my tests all files where identical, no difference. That means 7 encodings, 20-25 min each... :arrow: :x

I thought: it may be lmin setting makes a stronger control on rate control... so I redid :!: all tests without lmin, just vqmin=2:mbqmin=2

Again no differences between tests!!!

Am I doing anything wrong, or is rate control not working?.
And I have another problem, since I don't really know what texture, spatial or temporal complexity means (I understand the meaning, but how is it measured?, are they float numbers between 0 and 1?, what is it the range of values?). This way I find it too difficult. I'm just giving "palos de ciego".

bilu 04-06-2004 05:41 PM

I don't know if you noticed but I'm using naq again.
Did a 5 minute stream test using vbitrate=300 and another using vbitrate=9800 and could notice a significant difference.

Without naq there was almost no difference before.


Bilu

digitall.doc 04-07-2004 06:31 AM

bilu,
yes, I noticed. I'll have to try it again... :roll: . There's no single decision, related to encoding parameters, that we have dropped before, and we hadn't revisit again later :wink: .
You answer me with encoding differences related to vbitrate. My questions is related to rate control: how did you manage to get differences between tex and avgTex?, since as I posted I got no difference...
Do you also think that's related to using naq?. I'll have to test

bilu 04-07-2004 09:06 AM

@digi.doc

Look here:
http://www.kvcd.net/forum/viewtopic.php?t=10132


Bilu

digitall.doc 04-07-2004 12:14 PM

bilu,
very nice, I posted in that thread.
But I keep my problem with rate control: do you get differences changing vrc_eq?, and how?.

bilu 04-07-2004 07:03 PM

Quote:

Originally Posted by digitall.doc
bilu,
very nice, I posted in that thread.
But I keep my problem with rate control: do you get differences changing vrc_eq?, and how?.

I do get differences, check the shots (remade them).

Bilu

digitall.doc 04-09-2004 03:11 AM

bilu,
I see, you're getting differences indeed between tex and avgTex. Not very important, but differences. I'm becoming to get desperate, since I cannot reproduce your results related to differences with different vrc_eq values.
I'll change again of compilation version (but I'll have to drop encoding from vob directly) and see if it solves the problem.

bilu 04-11-2004 05:56 AM

Thread obsolete. vrc_minrate affects avg bitrate.

Extensive tests without vrc_minrate
http://www.kvcd.net/forum/viewtopic.php?t=10229


All times are GMT -5. The time now is 12:27 PM  —  vBulletin © Jelsoft Enterprises Ltd

Site design, images and content © 2002-2026 The Digital FAQ, www.digitalFAQ.com
Forum Software by vBulletin · Copyright © 2026 Jelsoft Enterprises Ltd.