[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