关于计算解码速度的问题

来源:互联网 发布:u盘数据恢复 360 编辑:程序博客网 时间:2024/05/21 14:59

开始计算解码速度的时候,认为4*4的块,只要像协议一样走完流程就可以算是解完一个宏块,但是后来发现,对于一个YUV=4:2:0的图像来说,要先解码亮度分量,再解码2个色度分量。观察JM的trace文件,也确实发现了这个问题。

*********** POC: 0 (I/P) MB: 0 Slice: 0 Type 2 **********
@107    mb_type                                                      1  (  0)
@108    intra4x4_pred_mode                                           1  ( -1)
@109    intra4x4_pred_mode                                        0001  (  1)
@113    intra4x4_pred_mode                                           1  ( -1)
@114    intra4x4_pred_mode                                        0110  (  6)
@118    intra4x4_pred_mode                                        0001  (  1)
@122    intra4x4_pred_mode                                        0111  (  7)
@126    intra4x4_pred_mode                                           1  ( -1)
@127    intra4x4_pred_mode                                           1  ( -1)
@128    intra4x4_pred_mode                                        0000  (  0)
@132    intra4x4_pred_mode                                        0000  (  0)
@136    intra4x4_pred_mode                                        0000  (  0)
@140    intra4x4_pred_mode                                        0111  (  7)
@144    intra4x4_pred_mode                                        0101  (  5)
@148    intra4x4_pred_mode                                           1  ( -1)
@149    intra4x4_pred_mode                                        0111  (  7)
@153    intra4x4_pred_mode                                        0111  (  7)
@157    intra_chroma_pred_mode                                       1  (  0)
@158    coded_block_pattern                                          1  ( 47)
@159    mb_qp_delta                                                  1  (  0)
@160    Luma # c & tr.1s vlc=0 #c=11 #t1=1             000000000001110  ( 14)
@175    Luma trailing ones sign (0,0)                                0  (  0)
@176    Luma lev (0,0) k=9 vlc=1                                    11  (  3)
@178    Luma lev (0,0) k=8 vlc=1                                    11  (  3)
@180    Luma lev (0,0) k=7 vlc=1                                    10  (  2)
@182    Luma lev (0,0) k=6 vlc=1                                000011  (  3)
@188    Luma lev (0,0) k=5 vlc=2                              00000101  (  5)
@196    Luma lev (0,0) k=4 vlc=3                                  1101  ( 13)
@200    Luma lev (0,0) k=3 vlc=3                                  1100  ( 12)
@204    Luma lev (0,0) k=2 vlc=3                                  1100  ( 12)
@208    Luma lev (0,0) k=1 vlc=3                                001111  ( 15)
@214    Luma lev (0,0) k=0 vlc=3                                001000  (  8)
@220    Luma totalrun (0,0) vlc=10                                 010  (  2)
@223    Luma run (10,0) k=10 vlc=2                                  10  (  2)
@225    Luma run (9,0) k=9 vlc=1                                    00  (  0)
@227    Luma # c & tr.1s vlc=3 #c=8 #t1=1                       011101  ( 29)
@233    Luma trailing ones sign (1,0)                                1  (  1)
@234    Luma lev (1,0) k=6 vlc=0                                    01  (  1)
@236    Luma lev (1,0) k=5 vlc=1                                    10  (  2)
@238    Luma lev (1,0) k=4 vlc=1                                   010  (  2)
@241    Luma lev (1,0) k=3 vlc=1                                    11  (  3)
@243    Luma lev (1,0) k=2 vlc=1                                   010  (  2)
@246    Luma lev (1,0) k=1 vlc=1                                   010  (  2)
@249    Luma lev (1,0) k=0 vlc=1                                  0010  (  2)
@253    Luma totalrun (1,0) vlc=7                                  010  (  2)
@256    Luma run (7,0) k=7 vlc=5                                   010  (  2)
@259    Luma run (6,0) k=6 vlc=1                                     1  (  1)
@260    Luma run (5,0) k=5 vlc=1                                     1  (  1)
@261    Luma run (4,0) k=4 vlc=1                                     1  (  1)
@262    Luma run (3,0) k=3 vlc=1                                    01  (  1)
@264    Luma run (2,0) k=2 vlc=0                                     0  (  0)
@265    Luma # c & tr.1s vlc=3 #c=10 #t1=3                      100111  ( 39)
@271    Luma trailing ones sign (0,1)                              110  (  6)
@274    Luma lev (0,1) k=6 vlc=0                                  0001  (  1)
@278    Luma lev (0,1) k=5 vlc=1                                   011  (  3)
@281    Luma lev (0,1) k=4 vlc=1                              00000011  (  3)
@289    Luma lev (0,1) k=3 vlc=2                                  0100  (  4)
@293    Luma lev (0,1) k=2 vlc=2                                   110  (  6)
@296    Luma lev (0,1) k=1 vlc=2                            0000000111  (  7)
@306    Luma lev (0,1) k=0 vlc=3                                  1111  ( 15)
@310    Luma totalrun (0,1) vlc=9                                   11  (  3)
@312    Luma run (9,1) k=9 vlc=2                                    11  (  3)
@314    Luma run (8,1) k=8 vlc=2                                    10  (  2)
@316    Luma run (7,1) k=7 vlc=1                                    01  (  1)
@318    Luma run (6,1) k=6 vlc=0                                     1  (  1)
@319    Luma run (5,1) k=5 vlc=0                                     1  (  1)
@320    Luma run (4,1) k=4 vlc=0                                     1  (  1)
@321    Luma run (3,1) k=3 vlc=0                                     1  (  1)
@322    Luma run (2,1) k=2 vlc=0                                     0  (  0)
@323    Luma # c & tr.1s vlc=3 #c=6 #t1=3                       010111  ( 23)
@329    Luma trailing ones sign (1,1)                              110  (  6)
@332    Luma lev (1,1) k=2 vlc=0                                    01  (  1)
@334    Luma lev (1,1) k=1 vlc=1                                   011  (  3)
@337    Luma lev (1,1) k=0 vlc=1                           00000000010  (  2)
@348    Luma totalrun (1,1) vlc=5                                  101  (  5)
@351    Luma run (5,1) k=5 vlc=3                                   001  (  1)
@354    Luma run (4,1) k=4 vlc=0                                     1  (  1)
@355    Luma run (3,1) k=3 vlc=0                                     0  (  0)
@356    Luma # c & tr.1s vlc=3 #c=11 #t1=1                      101001  ( 41)
@362    Luma trailing ones sign (2,0)                                0  (  0)
@363    Luma lev (2,0) k=9 vlc=1                                    11  (  3)
@365    Luma lev (2,0) k=8 vlc=1                                    10  (  2)
@367    Luma lev (2,0) k=7 vlc=1                                    10  (  2)
@369    Luma lev (2,0) k=6 vlc=1                                   011  (  3)
@372    Luma lev (2,0) k=5 vlc=1                                    10  (  2)
@374    Luma lev (2,0) k=4 vlc=1                                   011  (  3)
@377    Luma lev (2,0) k=3 vlc=1                                  0011  (  3)
@381    Luma lev (2,0) k=2 vlc=1                                   011  (  3)
@384    Luma lev (2,0) k=1 vlc=1                                    10  (  2)
@386    Luma lev (2,0) k=0 vlc=1                                000010  (  2)
@392    Luma totalrun (2,0) vlc=10                                 010  (  2)
@395    Luma run (10,0) k=10 vlc=2                                  10  (  2)
@397    Luma run (9,0) k=9 vlc=1                                     1  (  1)
@398    Luma run (8,0) k=8 vlc=1                                    01  (  1)
@400    Luma run (7,0) k=7 vlc=0                                     0  (  0)
@401    Luma # c & tr.1s vlc=3 #c=9 #t1=3                       100011  ( 35)
@407    Luma trailing ones sign (3,0)                              010  (  2)
@410    Luma lev (3,0) k=5 vlc=0                                000001  (  1)
@416    Luma lev (3,0) k=4 vlc=1                                   011  (  3)
@419    Luma lev (3,0) k=3 vlc=1                                  0010  (  2)
@423    Luma lev (3,0) k=2 vlc=1                                  0010  (  2)
@427    Luma lev (3,0) k=1 vlc=1                                    11  (  3)
@429    Luma lev (3,0) k=0 vlc=1                                  0010  (  2)
@433    Luma totalrun (3,0) vlc=8                                   11  (  3)
@435    Luma run (8,0) k=8 vlc=2                                    10  (  2)
@437    Luma run (7,0) k=7 vlc=1                                    01  (  1)
@439    Luma run (6,0) k=6 vlc=0                                     0  (  0)
@440    Luma # c & tr.1s vlc=3 #c=2 #t1=0                       000100  (  4)
@446    Luma lev (2,1) k=1 vlc=0                                     1  (  1)
@447    Luma lev (2,1) k=0 vlc=1                                   010  (  2)
@450    Luma totalrun (2,1) vlc=1                                  110  (  6)
@453    Luma run (1,1) k=1 vlc=0                                     0  (  0)
@454    Luma # c & tr.1s vlc=2 #c=1 #t1=1                         1110  ( 14)
@458    Luma trailing ones sign (3,1)                                0  (  0)
@459    Luma totalrun (3,1) vlc=0                                  010  (  2)
@462    Luma # c & tr.1s vlc=3 #c=1 #t1=1                       000001  (  1)
@468    Luma trailing ones sign (0,2)                                0  (  0)
@469    Luma totalrun (0,2) vlc=0                                  011  (  3)
@472    Luma # c & tr.1s vlc=2 #c=0 #t1=0                         1111  ( 15)
@476    Luma # c & tr.1s vlc=0 #c=8 #t1=3                   0000000100  (  4)
@486    Luma trailing ones sign (0,3)                              001  (  1)
@489    Luma lev (0,3) k=4 vlc=0                                000001  (  1)
@495    Luma lev (0,3) k=3 vlc=1                                   011  (  3)
@498    Luma lev (0,3) k=2 vlc=1                                  0010  (  2)
@502    Luma lev (0,3) k=1 vlc=1                                   010  (  2)
@505    Luma lev (0,3) k=0 vlc=1                                   011  (  3)
@508    Luma totalrun (0,3) vlc=7                                 0001  (  1)
@512    Luma run (7,3) k=7 vlc=0                                     1  (  1)
@513    Luma run (6,3) k=6 vlc=0                                     0  (  0)
@514    Luma # c & tr.1s vlc=2 #c=5 #t1=3                         1010  ( 10)
@518    Luma trailing ones sign (1,3)                              110  (  6)
@521    Luma lev (1,3) k=1 vlc=0                                  0001  (  1)
@525    Luma lev (1,3) k=0 vlc=1                                  0010  (  2)
@529    Luma totalrun (1,3) vlc=4                                  011  (  3)
@532    Luma run (4,3) k=4 vlc=6                                   110  (  6)
@535    Luma run (3,3) k=3 vlc=5                                   000  (  0)
@538    Luma run (2,3) k=2 vlc=4                                   011  (  3)
@541    Luma run (1,3) k=1 vlc=2                                    10  (  2)
@543    Luma # c & tr.1s vlc=0 #c=8 #t1=3                   0000000100  (  4)
@553    Luma trailing ones sign (2,2)                              100  (  4)
@556    Luma lev (2,2) k=4 vlc=0                                  0001  (  1)
@560    Luma lev (2,2) k=3 vlc=1                                    11  (  3)
@562    Luma lev (2,2) k=2 vlc=1                                   010  (  2)
@565    Luma lev (2,2) k=1 vlc=1                                   010  (  2)
@568    Luma lev (2,2) k=0 vlc=1                                  0011  (  3)
@572    Luma totalrun (2,2) vlc=7                                  011  (  3)
@575    Luma run (7,2) k=7 vlc=2                                    11  (  3)
@577    Luma run (6,2) k=6 vlc=2                                    11  (  3)
@579    Luma run (5,2) k=5 vlc=2                                    00  (  0)
@581    Luma # c & tr.1s vlc=2 #c=7 #t1=3                         1000  (  8)
@585    Luma trailing ones sign (3,2)                              100  (  4)
@588    Luma lev (3,2) k=3 vlc=0                                    01  (  1)
@590    Luma lev (3,2) k=2 vlc=1                                    11  (  3)
@592    Luma lev (3,2) k=1 vlc=1                                   011  (  3)
@595    Luma lev (3,2) k=0 vlc=1                                   010  (  2)
@598    Luma totalrun (3,2) vlc=6                                  100  (  4)
@601    Luma run (6,2) k=6 vlc=2                                    11  (  3)
@603    Luma run (5,2) k=5 vlc=2                                    11  (  3)
@605    Luma run (4,2) k=4 vlc=2                                    10  (  2)
@607    Luma run (3,2) k=3 vlc=1                                     1  (  1)
@608    Luma run (2,2) k=2 vlc=1                                    01  (  1)
@610    Luma run (1,2) k=1 vlc=0                                     0  (  0)
@611    Luma # c & tr.1s vlc=2 #c=9 #t1=2                      0001010  ( 10)
@618    Luma trailing ones sign (2,3)                               01  (  1)
@620    Luma lev (2,3) k=6 vlc=0                                     1  (  1)
@621    Luma lev (2,3) k=5 vlc=1                                   011  (  3)
@624    Luma lev (2,3) k=4 vlc=1                                    11  (  3)
@626    Luma lev (2,3) k=3 vlc=1                                   010  (  2)
@629    Luma lev (2,3) k=2 vlc=1                                 00011  (  3)
@634    Luma lev (2,3) k=1 vlc=2                                   101  (  5)
@637    Luma lev (2,3) k=0 vlc=2                                  0110  (  6)
@641    Luma totalrun (2,3) vlc=8                                   10  (  2)
@643    Luma run (8,3) k=8 vlc=3                                    11  (  3)
@645    Luma run (7,3) k=7 vlc=3                                    11  (  3)
@647    Luma run (6,3) k=6 vlc=3                                    11  (  3)
@649    Luma run (5,3) k=5 vlc=3                                   001  (  1)
@652    Luma run (4,3) k=4 vlc=0                                     1  (  1)
@653    Luma run (3,3) k=3 vlc=0                                     0  (  0)
@654    Luma # c & tr.1s vlc=3 #c=6 #t1=0                       010100  ( 20)
@660    Luma lev (3,3) k=5 vlc=0                                     1  (  1)
@661    Luma lev (3,3) k=4 vlc=1                                    10  (  2)
@663    Luma lev (3,3) k=3 vlc=1                                   010  (  2)
@666    Luma lev (3,3) k=2 vlc=1                                   011  (  3)
@669    Luma lev (3,3) k=1 vlc=1                                    11  (  3)
@671    Luma lev (3,3) k=0 vlc=1                                 00010  (  2)
@676    Luma totalrun (3,3) vlc=5                                  110  (  6)
@679    Luma run (5,3) k=5 vlc=2                                    00  (  0)
@681    ChrDC # c & tr.1s  #c=1 #t1=0                           000111  (  7)
@687    ChrDC lev (0,0) k=0 vlc=0                                  001  (  1)
@690    ChrDC totalrun (0,0) vlc=0                                 001  (  1)
@693    ChrDC # c & tr.1s  #c=3 #t1=1                          0000011  (  3)
@700    ChrDC trailing ones sign (0,0)                               0  (  0)
@701    ChrDC lev (0,0) k=1 vlc=0                             00000001  (  1)
@709    ChrDC lev (0,0) k=0 vlc=2                                 0111  (  7)
@713    ChrDC totalrun (0,0) vlc=2                                   0  (  0)
@714    ChrDC run (2,0) k=2 vlc=0                                    1  (  1)
@715    ChrDC run (1,0) k=1 vlc=0                                    0  (  0)
@716    ChrAC # c & tr.1s vlc=0 #c=2 #t1=2                         001  (  1)
@719    ChrAC trailing ones sign (0,4)                              10  (  2)
@721    ChrAC totalrun (0,4) vlc=1                                 110  (  6)
@724    ChrAC run (1,4) k=1 vlc=0                                    1  (  1)
@725    ChrAC # c & tr.1s vlc=1 #c=3 #t1=2                      001001  (  9)
@731    ChrAC trailing ones sign (1,4)                              11  (  3)
@733    ChrAC lev (1,4) k=0 vlc=0                                    1  (  1)
@734    ChrAC totalrun (1,4) vlc=2                                 100  (  4)
@737    ChrAC run (2,4) k=2 vlc=5                                  101  (  5)
@740    ChrAC run (1,4) k=1 vlc=0                                    1  (  1)
@741    ChrAC # c & tr.1s vlc=1 #c=1 #t1=1                          10  (  2)
@743    ChrAC trailing ones sign (0,5)                               0  (  0)
@744    ChrAC totalrun (0,5) vlc=0                                   1  (  1)
@745    ChrAC # c & tr.1s vlc=1 #c=0 #t1=0                          11  (  3)
@747    ChrAC # c & tr.1s vlc=0 #c=7 #t1=3                   000000100  (  4)
@756    ChrAC trailing ones sign (2,4)                             000  (  0)
@759    ChrAC lev (2,4) k=3 vlc=0                                    1  (  1)
@760    ChrAC lev (2,4) k=2 vlc=1                                  010  (  2)
@763    ChrAC lev (2,4) k=1 vlc=1                                 0011  (  3)
@767    ChrAC lev (2,4) k=0 vlc=1                                   10  (  2)
@769    ChrAC totalrun (2,4) vlc=6                                 101  (  5)
@772    ChrAC run (6,4) k=6 vlc=1                                   00  (  0)
@774    ChrAC # c & tr.1s vlc=2 #c=3 #t1=0                      001000  (  8)
@780    ChrAC lev (3,4) k=2 vlc=0                                    1  (  1)
@781    ChrAC lev (3,4) k=1 vlc=1                                  010  (  2)
@784    ChrAC lev (3,4) k=0 vlc=1                                 0011  (  3)
@788    ChrAC totalrun (3,4) vlc=2                                 100  (  4)
@791    ChrAC run (2,4) k=2 vlc=5                                  101  (  5)
@794    ChrAC run (1,4) k=1 vlc=0                                    1  (  1)
@795    ChrAC # c & tr.1s vlc=2 #c=0 #t1=0                        1111  ( 15)
@799    ChrAC # c & tr.1s vlc=1 #c=0 #t1=0                          11  (  3)

也可以发现确实是先解码luma再解码chromaDC,最后解码chromaAC,于是整个宏块才算解码完成。

原创粉丝点击