[XviD-devel] Bframes almost finished
Christoph Lampert
xvid-devel@xvid.org
Mon, 15 Jul 2002 00:28:42 +0200 (CEST)
Hi,
I worked a little at bframes this weekend. I added direct mode
(without delta vector, but already saving bits) and corrected
some errors in decoder_bframe by MinChem
In particular the quantizer was hardcoded to 8 for blocks without
dquant-modifier, which caused image distorsion.
My new version seems visually fine, but I have a problem which
I want to get rid off before I commit. Have a look at this test
(Foreman QCIF, fixed quant 4, bquant_ratio=200, max_bframes=2):
I encode and decode at the same time (with an offset of 4 frames,
so it looks a little garbled)... There is lot of debug output,
please look at the Time= N values:
They start fine, with 0(I) 3(P) 1(B) 2(B) 6(P) 4(B) 5(B) etc.
but then after Frame 28: and DecFrame 28: the P-frame(!) decoding
seems to "fail": it returns after 5 decoded bytes instead of 6 as usual
and the timestamp is 2 instead of 27. After that, bytestream seems to be
broken, the B-frame is identified correctly, but time_bp/time_pp is wrong
and the image gets buggy.
Do you have any idea what could cause _P-frames_ to become broken?
This does not happen for max_bframes=0. :-(((
Christoph
----------------------------------------------------------
Frame 0: intra 1, enctime = 8.3 ms length= 5531 bytes
Frame 1: intra 0, enctime = 1.3 ms length= 1 bytes
Frame 2: intra 0, enctime = 1.4 ms length= 1 bytes
Frame 3: intra 0, enctime = 44.9 ms length= 2537 bytes
I_VOP Time= 0
DecFrame 3: length= 5530 bytes (left: 2540)
Frame 4: intra 0, enctime = 20.0 ms length= 243 bytes
P_VOP Time= 3
DecFrame 4: length= 2079 bytes (left: 704)
Frame 5: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 1
DecFrame 5: length= 460 bytes (left: 251)
Frame 6: intra 0, enctime = 38.5 ms length= 2497 bytes
B_VOP Time= 2
DecFrame 6: length= 243 bytes (left: 2505)
Frame 7: intra 0, enctime = 23.8 ms length= 263 bytes
DecFrame 7: length= 6 bytes (left: 2762)
P_VOP Time= 6
DecFrame 7: length= 2143 bytes (left: 619)
Frame 8: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 4
DecFrame 8: length= 355 bytes (left: 271)
Frame 9: intra 0, enctime = 56.5 ms length= 2215 bytes
B_VOP Time= 5
DecFrame 9: length= 263 bytes (left: 2223)
Frame 10: intra 0, enctime = 21.3 ms length= 273 bytes
DecFrame 10: length= 6 bytes (left: 2490)
P_VOP Time= 9
DecFrame 10: length= 1976 bytes (left: 514)
Frame 11: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 7
DecFrame 11: length= 240 bytes (left: 281)
Frame 12: intra 0, enctime = 34.6 ms length= 2204 bytes
B_VOP Time= 8
DecFrame 12: length= 273 bytes (left: 2212)
Frame 13: intra 0, enctime = 19.5 ms length= 280 bytes
DecFrame 13: length= 6 bytes (left: 2486)
P_VOP Time= 12
DecFrame 13: length= 1960 bytes (left: 526)
Frame 14: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 10
DecFrame 14: length= 245 bytes (left: 288)
Frame 15: intra 0, enctime = 33.7 ms length= 1985 bytes
B_VOP Time= 11
DecFrame 15: length= 280 bytes (left: 1993)
Frame 16: intra 0, enctime = 18.2 ms length= 215 bytes
DecFrame 16: length= 6 bytes (left: 2202)
P_VOP Time= 15
DecFrame 16: length= 1784 bytes (left: 418)
Frame 17: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 13
DecFrame 17: length= 202 bytes (left: 223)
Frame 18: intra 0, enctime = 33.8 ms length= 2240 bytes
B_VOP Time= 14
DecFrame 18: length= 216 bytes (left: 2247)
Frame 19: intra 0, enctime = 22.9 ms length= 276 bytes
DecFrame 19: length= 5 bytes (left: 2518)
P_VOP Time= 18
DecFrame 19: length= 1926 bytes (left: 592)
Frame 20: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 16
DecFrame 20: length= 315 bytes (left: 284)
Frame 21: intra 0, enctime = 36.1 ms length= 2495 bytes
B_VOP Time= 17
DecFrame 21: length= 276 bytes (left: 2503)
Frame 22: intra 0, enctime = 19.7 ms length= 395 bytes
DecFrame 22: length= 6 bytes (left: 2892)
P_VOP Time= 21
DecFrame 22: length= 2094 bytes (left: 798)
Frame 23: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 19
DecFrame 23: length= 402 bytes (left: 403)
Frame 24: intra 0, enctime = 33.0 ms length= 1924 bytes
B_VOP Time= 20
DecFrame 24: length= 395 bytes (left: 1932)
Frame 25: intra 0, enctime = 19.5 ms length= 209 bytes
DecFrame 25: length= 6 bytes (left: 2135)
P_VOP Time= 24
DecFrame 25: length= 1606 bytes (left: 529)
Frame 26: intra 0, enctime = 0.2 ms length= 7 bytes
B_VOP Time= 22
DecFrame 26: length= 319 bytes (left: 217)
Frame 27: intra 0, enctime = 40.4 ms length= 1958 bytes
B_VOP Time= 23
DecFrame 27: length= 210 bytes (left: 1965)
Frame 28: intra 0, enctime = 17.7 ms length= 244 bytes
DecFrame 28: length= 5 bytes (left: 2204) <-- broken?
P_VOP Time= 2
DecFrame 28: length= 1770 bytes (left: 434)
Frame 29: intra 0, enctime = 0.2 ms length= 7 bytes
dec->time_pp -22
dec->time_bp -22
broken B-frame!
DecFrame 29: length= 8 bytes (left: 433)
Frame 30: intra 0, enctime = 38.2 ms length= 2360 bytes
dec->time_pp -22
dec->time_bp 1
B_VOP Time= 1
DecFrame 30: length= 425 bytes (left: 2368)
Frame 31: intra 0, enctime = 19.1 ms length= 274 bytes
DecFrame 31: length= 6 bytes (left: 2636)
P_VOP Time= 5
DecFrame 31: length= 2085 bytes (left: 551)
Frame 32: intra 0, enctime = 0.2 ms length= 7 bytes
dec->time_pp 3
dec->time_bp 2
B_VOP Time= 3
DecFrame 32: length= 276 bytes (left: 282)
Frame 33: intra 0, enctime = 38.3 ms length= 2312 bytes
dec->time_pp 3
dec->time_bp 1
B_VOP Time= 4
DecFrame 33: length= 274 bytes (left: 2320)
Frame 34: intra 0, enctime = 21.0 ms length= 314 bytes
DecFrame 34: length= 6 bytes (left: 2628)
P_VOP Time= 8
DecFrame 34: length= 2089 bytes (left: 539)
--
Christoph H. Lampert chl@math.uni-bonn.de | Diese Signature wurde maschi-
Beringstr. 6, Raum 14 Tel. (0228) 73-2948 | nell erstellt und bedarf
Sprechstunden: keine, aber meistens da | keiner Unterschrift. AZ 27B-6