View Full Version : Which resolution would you choose here...
RMCF
18th February 2003, 15:34
Which option would you think will give superior quality for TV playback.
100% quality at 640xwhatever with b-frames.
or
100% quality at 572xwhatever without b-frames.
Regards
hakko504
18th February 2003, 15:56
640xyyy with b-frames.
Always enable b-frames. You won't notice the slightly lower quality of the b-frames when you playback the video. In fact, the p-frames will be of slightly higher quality if you enable b-frames. (strange but true)
RMCF
18th February 2003, 23:05
Thanks.
I forgot to mention to use 5.0.2 since 0.3 bframes are messed up badly for me.
RMCF
25th February 2003, 01:21
Originally posted by hakko504
640xyyy with b-frames.
Always enable b-frames. You won't notice the slightly lower quality of the b-frames when you playback the video. In fact, the p-frames will be of slightly higher quality if you enable b-frames. (strange but true)
Are you sure that P-frames will be higher quality even if I use 100% quality already?
Regards
hakko504
25th February 2003, 07:52
Originally posted by RMCF
Are you sure that P-frames will be higher quality even if I use 100% quality already? Yes, but at that high % it will probably not be noticable. There is a mathematical theorem behind my last statement, which basically means that the more P-frames in sucession without a keyframe, the larger the staistical error will be. Since there is twice as many keyframes in sucession if you don't use b-frames the error will be higher if you don't enable b-frames. I can recommend a course in statistical processes (or similar, don't know hat it is called in english) if you want the details.
RMCF
25th February 2003, 14:51
D***, complicated.
I thought that b-frames were 4quant while the rest were 2quant.
Interesting to read your answers.
Regards
hakko504
25th February 2003, 15:06
Originally posted by RMCF
I thought that b-frames were 4quant while the rest were 2quant.
They are, but quantizers aren't the only thing affecting quality.
Conclusion: turning b-frames on will increase the quality of half the frames (the p-frames) but lower the quality of the rest (the ones who become b-frames). I-frames remain unchanged.
Oh, and keep your language down.
Manao
25th February 2003, 16:28
@hakko504 : your assertion is kind of surprising. Let's say f is derivable at least one time ( we are between two keyframes ), and that we want to code the serie f(0), f(a), f(2a) ... f(na) with the serie f(0), f(a)-(0), ... f(na)-f(na-a), and that we make an error En on each difference f(na)-f(na-a). This error is a fraction of f(na)-f(na-a), which we can max with max(f')*e, where e doesn't depend of n ( but of the way the error is produced and of a )
At the nth frame, the maximal error is n*e*max(f'), so your assertion is true, if e does not depend of a, or at most linearly. But it has to, and if I don't know how, I'm however almost convinced that it's more than linear.
Since you are pretty confident with your assertion, I'm must have done something wrong or forgotten something. But I don't see what. Could you enlighten me ?
hakko504
25th February 2003, 16:54
Let's say that we are going to code one second of NTSC video, i.e. 29 frames. The first one is an I-frame, leaving 28 other frames.
disabling b-frames would give us 28 p-frames, and the following series to encode: f(a)-f(0),f(2a)-f(a),...,f(28a)-f(27a)
enabling b-frames would give us 14 p-frames, and the following series to encode: f(2a)-f(0),f(4a)-f(2a),...,f(28a)-f(26a)
When Q=2 we can make the assumption you make, i.e. the error is e*(f') per frame and the maximal error at final frame is n*e*max(f'). In the first case, b-frames disabled, n=28 thus max error = 28*e*max(f'), but when you enable b-frames, n becomes 14(!) and thus max error = 14*e*max(f').
And the b-frames can be assumed to be encoded as f(2a-1)-0.5(f(2a)+f(2a-2)), and with Q=4 they can be thought of as having a max error of (4/2)*(4a-2)*e*max(f') (I think this is correct, I'm doing this from memory)
The main point anyway is that the error will slightly depend on the number of frames encoded as p-frames, and if you enable b-frames, there will be less p-frames to encode, so if you compare the frames frame by frame, for those frames that are p-frames in both sequences, the ones in the b-frame enabled sequence will be of a little better quality.
Manao
25th February 2003, 21:32
I disagree with your calculations : let be a little more precise on e. In the first case ( f(0), f(a) ... ), we can write the error for the nth frame like this : En = e(f,a)*|f(na) - f(na-a)| <= e(f,a)*max(|f'|)*a, which give for the last frame an error of
n*e(f,a)*max(f')*a
In the second case, En = e(f,2a)*max(f')*2a, thus the final error is
n/2 * e(f,2a)*max(f')*2a = n*e(f,2a)*max(f')*a
In first approximation, we can take e(f,a) = e(f), since we don't know to what kind of error we will be faced. In this case, the amount of error in the last frame of the two series is the same. But I didn't look to hard on the dependency in a of e(f,a), because it would complicate the problem a lot ( we have to introduce the fact that f(t) is a picture, not a single value, and I don't like fourier's series ).
DJ Bobo
25th February 2003, 22:04
Choose the resolution WITHOUT b-frames!
Because bidiretional encoding lowers quality visually for high bitrate encodings: walls will be more blocky.
So stick with 576x... without b-frames!
RMCF
27th February 2003, 15:46
After some testing I agree with DJ Bobo. B-Frames give nightmare wall texture which dance and artifact galore.
I guess I am switching to 5.0.3 Pro for n-pass business.
EDIT: On second thought I will stick with 502
Regards
vBulletin® v3.8.4, Copyright ©2000-2009, Jelsoft Enterprises Ltd.