关于level

    技术2022-05-11  42

    今天看到init_dpb()时有这么一行代码dpb.size= getDpbSize(); dpb.size表示什么含义我想大家都明白,这里我们关键看getDpbSize(); getDpbSize()函数一上来给pic_size赋值,这个仔细看应该也不难,接着就是我要讲的重点拉。 代码如下:    switch  (active_sps -> level_idc) // 第一帧IDR,这边是30   {   case   10 :     size  =   152064 ;     break ;   case   11 :     size  =   345600 ;     break ;   case   12 :     size  =   912384 ;     break ;   case   13 :     size  =   912384 ;     break ;   case   20 :     size  =   912384 ;     break ;   case   21 :     size  =   1824768 ;     break ;   case   22 :     size  =   3110400 ;     break ;   case   30 :     size  =   3110400 ;     break ;   case   31 :     size  =   6912000 ;     break ;   case   32 :     size  =   7864320 ;     break ;   case   40 :     size  =   12582912 ;     break ;   case   41 :     size  =   12582912 ;     break ;   case   42 :     size  =   12582912 ;     break ;   case   50 :     size  =   42393600 ;     break ;   case   51 :     size  =   70778880 ;     break ;   default :     error ( " undefined level " ,   500 );     break ;  } 看到这里,我想大家应该有两个疑问: 1。这个case 10 11 20等值是怎么来的? 2。后面跟着size= 152064又是什么? 这部分要在 毕厚杰的书277页的附表3.1中找到 解答 1。大家注意:表的第一列级数1 1.1 1.2 1.3。。。。有没有跟case那边联系起来了 对的,1=10 1.1=11 1.2=12 1.3=13          2=20 2.1=21 2.2=22          3=30 3.1=31 3.2=32          4=40 4.1=41 4.2=42          5=50 5.1=51 2。大家看第四列最大解码缓冲区尺寸MaxDPB 152064=148.5*1024 345600=337.5*1024 依此类推.......  

    最新回复(0)