[Mp4-tech] On Macroblock Skip.
Prasanna Sethuraman
prasanna.sethuraman patni.com
Thu Feb 23 10:46:25 EST 2006
Dear all,
I have some problems in skipping macro blocks in the encoder. When I skip
macro blocks, the bit stream produced by my encoder is no longer decoded by
the JM decoder, which spits out the message "invalid 16x16 intra pred Mode
VERT_PRED_16" before it terminates. To see what is going wrong, I dumped
into the file the parameters I am writing into the bitstream, and I used the
JM decoder's trace messages to see if everything is read properly. I have
provided those part of the files where the bit stream is not read properly
by the JM decoder. At first glance at the data in the two files, it appeared
like something is going wrong in the CAVLC part. I checked the draft
standard, and the only way an MB skip seems to be affecting the CAVLC part
is in the calculation of the parameter nC = (nA + nB + 1)>>1. I have checked
if the problem is in that point, but I don't think it is. Can someone
enlighten me as to what is going wrong?
If there is no MB skip, then the bit stream is completely decoded by the JM
decoder, and the reconstructed output of the JM decoder bit matches with the
internally reconstructed video at the encoder. Which is why I am skeptical
about there being any error in my CAVLC part.
Please let me know if you need some more data on what I am writing into the
bit stream. If you can give me some pointers as to where I can look for an
error, I would be very grateful. Thanks in advance.
Best regards,
Prasanna.
// Parameters I write into the bit stream. Macro block 8 has been skipped
(and is not the first macro block that is skipped)
mb_skip_run = 1, length = 3
Mb address = 9
mb_type = 0, length = 1
Se_mb_mvd_l0[0][0].x = -4, length = 7
Se_mb_mvd_l0[0][1].y = 0, length = 1
cbp = 15, length = 7
delta_qp = -13, length = 9
mb_skip_run = 0, length = 1
Mb address = 10
mb_type = 0, length = 1
Se_mb_mvd_l0[0][0].x = 4, length = 7
Se_mb_mvd_l0[0][1].y = 0, length = 1
cbp = 10, length = 7
delta_qp = 0, length = 1
mb_skip_run = 0, length = 1
Mb address = 11
mb_type = 0, length = 1
Se_mb_mvd_l0[0][0].x = 0, length = 1
Se_mb_mvd_l0[0][1].y = -4, length = 7
cbp = 0, length = 1
// Parameters JM decoder reads from the bit stream. It reads the MVD and CBP
properly till the 9th macro block. But something is going wrong in the way
it reads the
// CAVLC data of the 9th macro block...
*********** POC: 1 (I/P) MB: 8 Slice: 0 Type 0 **********
@36289 mb_skip_run 010 (
1)
*********** POC: 1 (I/P) MB: 9 Slice: 0 Type 0 **********
@36292 mb_type 1 (
0)
@36293 mvd_l0 0001001 (
-4)
@36300 mvd_l0 1 (
0)
@36301 coded_block_pattern 0001100 (
15)
@36308 mb_qp_delta 000011011
(-13)
@36317 Luma # c & tr.1s vlc=0 #c=6 #t1=0 0000000001111 (
15)
@36330 Luma lev (0,0) k=5 vlc=0 01 (
1)
@36332 Luma lev (0,0) k=4 vlc=1 10 (
2)
@36334 Luma lev (0,0) k=3 vlc=1 10 (
2)
@36336 Luma lev (0,0) k=2 vlc=1 011 (
3)
@36339 Luma lev (0,0) k=1 vlc=1 10 (
2)
@36341 Luma lev (0,0) k=0 vlc=1 10 (
2)
@36343 Luma totalrun (0,0) vlc=5 000000 (
0)
@36349 Luma run (5,0) k=5 vlc=6 100 (
4)
@36352 Luma run (4,0) k=4 vlc=6 111 (
7)
@36355 Luma run (3,0) k=3 vlc=6 110 (
6)
@36358 Luma run (2,0) k=2 vlc=5 001 (
1)
@36361 Luma run (1,0) k=1 vlc=3 01 (
1)
@36363 Luma # c & tr.1s vlc=2 #c=8 #t1=2 0001101 (
13)
@36370 Luma trailing ones sign (1,0) 10 (
2)
@36372 Luma lev (1,0) k=5 vlc=0 001 (
1)
@36375 Luma lev (1,0) k=4 vlc=1 0011 (
3)
@36379 Luma lev (1,0) k=3 vlc=1 11 (
3)
@36381 Luma lev (1,0) k=2 vlc=1 011 (
3)
@36384 Luma lev (1,0) k=1 vlc=1 11 (
3)
@36386 Luma lev (1,0) k=0 vlc=1 00010 (
2)
@36391 Luma totalrun (1,0) vlc=7 001 (
1)
@36394 Luma run (7,0) k=7 vlc=6 101 (
5)
@36397 Luma run (6,0) k=6 vlc=4 011 (
3)
@36400 Luma run (5,0) k=5 vlc=2 00 (
0)
@36402 Luma # c & tr.1s vlc=1 #c=3 #t1=0 0000111 (
7)
@36409 Luma lev (0,1) k=2 vlc=0 1 (
1)
@36410 Luma lev (0,1) k=1 vlc=1 0011 (
3)
@36414 Luma lev (0,1) k=0 vlc=1 10 (
2)
@36416 Luma totalrun (0,1) vlc=2 0011 (
3)
@36420 Luma run (2,1) k=2 vlc=4 10 (
2)
@36422 Luma run (1,1) k=1 vlc=3 11 (
3)
@36424 Luma # c & tr.1s vlc=2 #c=2 #t1=2 1101 (
13)
@36428 Luma trailing ones sign (1,1) 01 (
1)
@36430 Luma totalrun (1,1) vlc=1 100 (
4)
@36433 Luma run (1,1) k=1 vlc=2 00 (
0)
@36435 Luma # c & tr.1s vlc=3 #c=13 #t1=1 110001 (
49)
@36441 Luma trailing ones sign (2,0) 1 (
1)
@36442 Luma lev (2,0) k=11 vlc=1 11 (
3)
@36444 Luma lev (2,0) k=10 vlc=1 011 (
3)
@36447 Luma lev (2,0) k=9 vlc=1 11 (
3)
@36449 Luma lev (2,0) k=8 vlc=1 011 (
3)
@36452 Luma lev (2,0) k=7 vlc=1 0000011 (
3)
@36459 Luma lev (2,0) k=6 vlc=2 0110 (
6)
@36463 Luma lev (2,0) k=5 vlc=2 110 (
6)
@36466 Luma lev (2,0) k=4 vlc=2 000000101 (
5)
@36475 Luma lev (2,0) k=3 vlc=3 0001001 (
9)
@36482 Luma lev (2,0) k=2 vlc=4 010110 (
22)
@36488 Luma lev (2,0) k=1 vlc=4 11011 (
27)
@36493 Luma lev (2,0) k=0 vlc=4 000011011 (
27)
@36502 Luma totalrun (2,0) vlc=12 1 (
1)
@36503 Luma run (12,0) k=12 vlc=1 1 (
1)
@36504 Luma run (11,0) k=11 vlc=1 01 (
1)
@36506 Luma run (10,0) k=10 vlc=0 1 (
1)
@36507 Luma run (9,0) k=9 vlc=0 0 (
0)
@36508 Luma # c & tr.1s vlc=3 #c=6 #t1=0 010100 (
20)
@36514 Luma lev (3,0) k=5 vlc=0 01 (
1)
@36516 Luma lev (3,0) k=4 vlc=1 10 (
2)
@36518 Luma lev (3,0) k=3 vlc=1 010 (
2)
@36521 Luma lev (3,0) k=2 vlc=1 011 (
3)
@36524 Luma lev (3,0) k=1 vlc=1 010 (
2)
@36527 Luma lev (3,0) k=0 vlc=1 11 (
3)
@36529 Luma totalrun (3,0) vlc=5 111 (
7)
@36532 Luma run (5,0) k=5 vlc=1 01 (
1)
@36534 Luma run (4,0) k=4 vlc=0 1 (
1)
@36535 Luma run (3,0) k=3 vlc=0 0 (
0)
@36536 Luma # c & tr.1s vlc=3 #c=10 #t1=2 100110 (
38)
@36542 Luma trailing ones sign (2,1) 11 (
3)
@36544 Luma lev (2,1) k=7 vlc=0 01 (
1)
@36546 Luma lev (2,1) k=6 vlc=1 11 (
3)
@36548 Luma lev (2,1) k=5 vlc=1 011 (
3)
@36551 Luma lev (2,1) k=4 vlc=1 11 (
3)
@36553 Luma lev (2,1) k=3 vlc=1 11 (
3)
@36555 Luma lev (2,1) k=2 vlc=1 11 (
3)
@36557 Luma lev (2,1) k=1 vlc=1 11 (
3)
@36559 Luma lev (2,1) k=0 vlc=1 011 (
3)
@36562 Luma totalrun (2,1) vlc=9 11 (
3)
@36564 Luma run (9,1) k=9 vlc=2 11 (
3)
@36566 Luma run (8,1) k=8 vlc=2 00 (
0)
@36568 Luma # c & tr.1s vlc=3 #c=5 #t1=1 010001 (
17)
@36574 Luma trailing ones sign (3,1) 0 (
0)
@36575 Luma lev (3,1) k=3 vlc=0 001 (
1)
@36578 Luma lev (3,1) k=2 vlc=1 010 (
2)
@36581 Luma lev (3,1) k=1 vlc=1 11 (
3)
@36583 Luma lev (3,1) k=0 vlc=1 10 (
2)
@36585 Luma totalrun (3,1) vlc=4 101 (
5)
@36588 Luma run (4,1) k=4 vlc=4 11 (
3)
@36590 Luma run (3,1) k=3 vlc=4 010 (
2)
@36593 Luma run (2,1) k=2 vlc=1 01 (
1)
@36595 Luma run (1,1) k=1 vlc=0 1 (
1)
@36596 Luma # c & tr.1s vlc=1 #c=1 #t1=1 10 (
2)
@36598 Luma trailing ones sign (0,2) 0 (
0)
@36599 Luma totalrun (0,2) vlc=0 1 (
1)
@36600 Luma # c & tr.1s vlc=1 #c=2 #t1=2 011 (
3)
@36603 Luma trailing ones sign (1,2) 11 (
3)
@36605 Luma totalrun (1,2) vlc=1 111 (
7)
@36608 Luma # c & tr.1s vlc=0 #c=2 #t1=1 000100 (
4)
@36614 Luma trailing ones sign (0,3) 1 (
1)
@36615 Luma lev (0,3) k=0 vlc=0 1 (
1)
@36616 Luma totalrun (0,3) vlc=1 00010 (
2)
@36621 Luma run (1,3) k=1 vlc=6 001 (
1)
@36624 Luma # c & tr.1s vlc=1 #c=7 #t1=3 000100 (
4)
@36630 Luma trailing ones sign (1,3) 100 (
4)
@36633 Luma lev (1,3) k=3 vlc=0 01 (
1)
@36635 Luma lev (1,3) k=2 vlc=1 0010 (
2)
@36639 Luma lev (1,3) k=1 vlc=1 0011 (
3)
@36643 Luma lev (1,3) k=0 vlc=1 010 (
2)
@36646 Luma totalrun (1,3) vlc=6 0001 (
1)
@36650 Luma run (6,3) k=6 vlc=6 101 (
5)
@36653 Luma run (5,3) k=5 vlc=4 10 (
2)
@36655 Luma run (4,3) k=4 vlc=3 000 (
0)
@36658 Luma # c & tr.1s vlc=2 #c=9 #t1=2 0001010 (
10)
@36665 Luma trailing ones sign (2,2) 01 (
1)
@36667 Luma lev (2,2) k=6 vlc=0 000001 (
1)
@36673 Luma lev (2,2) k=5 vlc=2 111 (
7)
@36676 Luma lev (2,2) k=4 vlc=2 111 (
7)
@36679 Luma lev (2,2) k=3 vlc=2 101 (
5)
@36682 Luma lev (2,2) k=2 vlc=2 0111 (
7)
@36686 Luma lev (2,2) k=1 vlc=2 0111 (
7)
@36690 Luma lev (2,2) k=0 vlc=2 100 (
4)
@36693 Luma totalrun (2,2) vlc=8 10 (
2)
@36695 Luma run (8,2) k=8 vlc=3 11 (
3)
@36697 Luma run (7,2) k=7 vlc=3 01 (
1)
@36699 Luma run (6,2) k=6 vlc=1 1 (
1)
@36700 Luma run (5,2) k=5 vlc=1 00 (
0)
@36702 Luma # c & tr.1s vlc=2 #c=6 #t1=3 1001 (
9)
@36706 Luma trailing ones sign (3,2) 000 (
0)
@36709 Luma lev (3,2) k=2 vlc=0 1 (
1)
@36710 Luma lev (3,2) k=1 vlc=1 0010 (
2)
@36714 Luma lev (3,2) k=0 vlc=1 011 (
3)
@36717 Luma totalrun (3,2) vlc=5 010 (
2)
@36720 Luma run (5,2) k=5 vlc=6 101 (
5)
@36723 Luma run (4,2) k=4 vlc=4 11 (
3)
@36725 Luma run (3,2) k=3 vlc=4 11 (
3)
@36727 Luma run (2,2) k=2 vlc=4 11 (
3)
@36729 Luma run (1,2) k=1 vlc=4 11 (
3)
@36731 Luma # c & tr.1s vlc=3 #c=4 #t1=0 001100 (
12)
@36737 Luma lev (2,3) k=3 vlc=0 1 (
1)
@36738 Luma lev (2,3) k=2 vlc=1 010 (
2)
@36741 Luma lev (2,3) k=1 vlc=1 10 (
2)
@36743 Luma lev (2,3) k=0 vlc=1 010 (
2)
@36746 Luma totalrun (2,3) vlc=3 0100 (
4)
@36750 Luma run (3,3) k=3 vlc=2 10 (
2)
@36752 Luma run (2,3) k=2 vlc=1 1 (
1)
@36753 Luma run (1,3) k=1 vlc=1 00 (
0)
@36755 Luma # c & tr.1s vlc=2 #c=11 #t1=1 000001110 (
14)
@36764 Luma trailing ones sign (3,3) 1 (
1)
@36765 Luma lev (3,3) k=9 vlc=1 0011 (
3)
@36769 Luma lev (3,3) k=8 vlc=2 000100 (
4)
@36775 Luma lev (3,3) k=7 vlc=3 01100 (
12)
@36780 Luma lev (3,3) k=6 vlc=3 1010 (
10)
@36784 Luma lev (3,3) k=5 vlc=3 1110 (
14)
@36788 Luma lev (3,3) k=4 vlc=3 001110 (
14)
@36794 Luma lev (3,3) k=3 vlc=3 1110 (
14)
@36798 Luma lev (3,3) k=2 vlc=3 1111 (
15)
@36802 Luma lev (3,3) k=1 vlc=3 001001 (
9)
@36808 Luma lev (3,3) k=0 vlc=3 1101 (
13)
@36812 Luma totalrun (3,3) vlc=10 1 (
1)
@36813 Luma run (10,3) k=10 vlc=3 11 (
3)
@36815 Luma run (9,3) k=9 vlc=3 000 (
0)
*********** POC: 1 (I/P) MB: 10 Slice: 0 Type 0 **********
@36818 mb_skip_run 010 (
1)
*********** POC: 1 (I/P) MB: 11 Slice: 0 Type 0 **********
@36821 mb_type 010 (
1)
@36824 mvd_l0 1 (
0)
@36825 mvd_l0 1 (
0)
@36826 mvd_l0 0001110 (
7)
@36833 mvd_l0 010 (
1)
@36836 coded_block_pattern 010 (
16)
@36839 mb_qp_delta 010 (
1)
@36842 ChrDC # c & tr.1s #c=0 #t1=0 01 (
1)
@36844 ChrDC # c & tr.1s #c=1 #t1=1 1 (
1)
@36845 ChrDC trailing ones sign (0,0) 1 (
1)
@36846 ChrDC totalrun (0,0) vlc=0 1 (
1)
http://www.patni.com
World-Wide Partnerships. World-Class Solutions.
_____________________________________________________________________
This e-mail message may contain proprietary, confidential or legally
privileged information for the sole use of the person or entity to
whom this message was originally addressed. Any review, e-transmission
dissemination or other use of or taking of any action in reliance upon
this information by persons or entities other than the intended
recipient is prohibited. If you have received this e-mail in error
kindly delete this e-mail from your records. If it appears that this
mail has been forwarded to you without proper authority, please notify
us immediately at netadmin patni.com and delete this mail.
_____________________________________________________________________
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/mp4-tech/attachments/20060223/f394ad00/attachment-0001.html
More information about the Mp4-tech
mailing list