Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
18th February 2003, 15:34 | #1 | Link |
Registered User
Join Date: Feb 2003
Location: Chamartin
Posts: 39
|
Which resolution would you choose here...
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 |
18th February 2003, 15:56 | #2 | Link |
Remember Rule One
Join Date: Oct 2001
Location: SWEDEN
Posts: 1,611
|
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) |
25th February 2003, 01:21 | #4 | Link | |
Registered User
Join Date: Feb 2003
Location: Chamartin
Posts: 39
|
Quote:
Regards |
|
25th February 2003, 07:52 | #5 | Link | |
Remember Rule One
Join Date: Oct 2001
Location: SWEDEN
Posts: 1,611
|
Quote:
|
|
25th February 2003, 15:06 | #7 | Link | |
Remember Rule One
Join Date: Oct 2001
Location: SWEDEN
Posts: 1,611
|
Quote:
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. |
|
25th February 2003, 16:28 | #8 | Link |
Registered User
Join Date: Jan 2002
Location: France
Posts: 2,856
|
@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 ? |
25th February 2003, 16:54 | #9 | Link |
Remember Rule One
Join Date: Oct 2001
Location: SWEDEN
Posts: 1,611
|
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. |
25th February 2003, 21:32 | #10 | Link |
Registered User
Join Date: Jan 2002
Location: France
Posts: 2,856
|
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 ). |
27th February 2003, 15:46 | #12 | Link |
Registered User
Join Date: Feb 2003
Location: Chamartin
Posts: 39
|
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 Last edited by RMCF; 27th February 2003 at 16:49. |
|
|