亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? image.c

?? jm_frext22.ZIP的壓縮文件,主要用于嵌入式系統(tǒng)圖象的編解碼的開(kāi)發(fā).
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
      jj                  = 4*mby + (i/2)*2;
      pRegion             = currRegion + i;
      pRegion->regionMode = (currMB->mb_type  ==I16MB  ? REGMODE_INTRA      :
                             currMB->b8mode[i]==IBLOCK ? REGMODE_INTRA_8x8  : REGMODE_INTER_PRED_8x8);
      if (currMB->mb_type==I16MB || currMB->b8mode[i]==IBLOCK)  // INTRA
      {
        pRegion->mv[0]    = 0;
        pRegion->mv[1]    = 0;
        pRegion->mv[2]    = 0;
      }
      else
      {
        int idx = (dec_picture->ref_idx[0][ii][jj]<0)?1:0;
//        int idx = (currMB->b8mode[i]==0 && currMB->b8pdir[i]==2 ? LIST_0 : currMB->b8pdir[i]==1 ? LIST_1 : LIST_0);
//        int idx = currMB->b8pdir[i]==0 ? LIST_0 : LIST_1;
        mv                = dec_picture->mv[idx];
        pRegion->mv[0]    = (mv[ii][jj][0] + mv[ii+1][jj][0] + mv[ii][jj+1][0] + mv[ii+1][jj+1][0] + 2)/4;
        pRegion->mv[1]    = (mv[ii][jj][1] + mv[ii+1][jj][1] + mv[ii][jj+1][1] + mv[ii+1][jj+1][1] + 2)/4;
        erc_mvperMB      += mabs(pRegion->mv[0]) + mabs(pRegion->mv[1]);

        pRegion->mv[2]  = (dec_picture->ref_idx[idx][ii][jj]);
/*        
        if (currMB->b8pdir[i]==0 || (currMB->b8pdir[i]==2 && currMB->b8mode[i]!=0)) // forward or bidirect
        {
          pRegion->mv[2]  = (dec_picture->ref_idx[LIST_0][ii][jj]);
          ///???? is it right, not only "img->fw_refFrArr[jj][ii-4]"
        }
        else
        {
          pRegion->mv[2]  = (dec_picture->ref_idx[LIST_1][ii][jj]);
//          pRegion->mv[2]  = 0;
        }
        */
      }
    }
  }
}

/*!
 ************************************************************************
 * \brief
 *    set defaults for old_slice
 *    NAL unit of a picture"
 ************************************************************************
 */
void init_old_slice()
{
  old_slice.field_pic_flag = 0;

  old_slice.pps_id = INT_MAX;

  old_slice.frame_num = INT_MAX;

  old_slice.nal_ref_idc = INT_MAX;
  
  old_slice.idr_flag = 0;

  old_slice.pic_oder_cnt_lsb          = UINT_MAX;
  old_slice.delta_pic_oder_cnt_bottom = INT_MAX;

  old_slice.delta_pic_order_cnt[0] = INT_MAX;
  old_slice.delta_pic_order_cnt[1] = INT_MAX;

}

/*!
 ************************************************************************
 * \brief
 *    save slice parameters that are needed for checking of "first VCL
 *    NAL unit of a picture"
 ************************************************************************
 */
void exit_slice()
{

  old_slice.pps_id = img->currentSlice->pic_parameter_set_id;

  old_slice.frame_num = img->frame_num;

  old_slice.field_pic_flag = img->field_pic_flag;

  if(img->field_pic_flag)
  {
    old_slice.bottom_field_flag = img->bottom_field_flag;
  }

  old_slice.nal_ref_idc   = img->nal_reference_idc;
  
  old_slice.idr_flag = img->idr_flag;
  if (img->idr_flag)
  {
    old_slice.idr_pic_id = img->idr_pic_id;
  }

  if (active_sps->pic_order_cnt_type == 0)
  {
    old_slice.pic_oder_cnt_lsb          = img->pic_order_cnt_lsb;
    old_slice.delta_pic_oder_cnt_bottom = img->delta_pic_order_cnt_bottom;
  }

  if (active_sps->pic_order_cnt_type == 1)
  {
    old_slice.delta_pic_order_cnt[0] = img->delta_pic_order_cnt[0];
    old_slice.delta_pic_order_cnt[1] = img->delta_pic_order_cnt[1];
  }
}

/*!
 ************************************************************************
 * \brief
 *    detect if current slice is "first VCL NAL unit of a picture"
 ************************************************************************
 */
int is_new_picture()
{
  int result=0;

  result |= (old_slice.pps_id != img->currentSlice->pic_parameter_set_id);

  result |= (old_slice.frame_num != img->frame_num);

  result |= (old_slice.field_pic_flag != img->field_pic_flag);

  if(img->field_pic_flag && old_slice.field_pic_flag)
  {
    result |= (old_slice.bottom_field_flag != img->bottom_field_flag);
  }

  result |= (old_slice.nal_ref_idc   != img->nal_reference_idc);
  
  result |= ( old_slice.idr_flag != img->idr_flag);

  if (img->idr_flag && old_slice.idr_flag)
  {
    result |= (old_slice.idr_pic_id != img->idr_pic_id);
  }

  if (active_sps->pic_order_cnt_type == 0)
  {
    result |=  (old_slice.pic_oder_cnt_lsb          != img->pic_order_cnt_lsb);
    result |=  (old_slice.delta_pic_oder_cnt_bottom != img->delta_pic_order_cnt_bottom);
  }

  if (active_sps->pic_order_cnt_type == 1)
  {
    result |= (old_slice.delta_pic_order_cnt[0] != img->delta_pic_order_cnt[0]);
    result |= (old_slice.delta_pic_order_cnt[1] != img->delta_pic_order_cnt[1]);
  }

  return result;
}


/*!
 ************************************************************************
 * \brief
 *    decodes one slice
 ************************************************************************
 */
void decode_one_slice(struct img_par *img,struct inp_par *inp)
{

  Boolean end_of_slice = FALSE;
  int read_flag;
  img->cod_counter=-1;

  set_ref_pic_num();

  if (img->type == B_SLICE)
      compute_collocated(Co_located, listX);

  //reset_ec_flags();

  while (end_of_slice == FALSE) // loop over macroblocks
  {

#if TRACE
  fprintf(p_trace,"\n*********** POC: %i (I/P) MB: %i Slice: %i Type %d **********\n", img->ThisPOC, img->current_mb_nr, img->current_slice_nr, img->type);
#endif

	// Initializes the current macroblock
    start_macroblock(img,inp, img->current_mb_nr);
    // Get the syntax elements from the NAL
    read_flag = read_one_macroblock(img,inp);
    decode_one_macroblock(img,inp);

    if(img->MbaffFrameFlag && dec_picture->mb_field[img->current_mb_nr])
    {
      img->num_ref_idx_l0_active >>= 1;
      img->num_ref_idx_l1_active >>= 1;
    }

    ercWriteMBMODEandMV(img,inp);

    end_of_slice=exit_macroblock(img,inp,(!img->MbaffFrameFlag||img->current_mb_nr%2));
  }

  exit_slice();
  //reset_ec_flags();

}


void decode_slice(struct img_par *img,struct inp_par *inp, int current_header)
{
  Slice *currSlice = img->currentSlice;

  if (active_pps->entropy_coding_mode_flag)
  {
    init_contexts (img);
    cabac_new_slice();
  }

  if ( (active_pps->weighted_bipred_idc > 0  && (img->type == B_SLICE)) || (active_pps->weighted_pred_flag && img->type !=I_SLICE))
    fill_wp_params(img);

  //printf("frame picture %d %d %d\n",img->structure,img->ThisPOC,img->direct_type);
  

  // decode main slice information
  if ((current_header == SOP || current_header == SOS) && currSlice->ei_flag == 0)
    decode_one_slice(img,inp);
    
  // setMB-Nr in case this slice was lost
//  if(currSlice->ei_flag)  
//    img->current_mb_nr = currSlice->last_mb_nr + 1;

}


/*!
 ************************************************************************
 * \brief
 *    Prepare field and frame buffer after frame decoding
 ************************************************************************
 */
void frame_postprocessing(struct img_par *img, struct inp_par *inp)
{
}

/*!
 ************************************************************************
 * \brief
 *    Prepare field and frame buffer after field decoding
 ************************************************************************
 */
void field_postprocessing(struct img_par *img, struct inp_par *inp)
{
  img->number /= 2;
}



void reset_wp_params(struct img_par *img)
{
  int i,comp;
  int log_weight_denom;

  for (i=0; i<MAX_REFERENCE_PICTURES; i++)
  {
    for (comp=0; comp<3; comp++)
    {
      log_weight_denom = (comp == 0) ? img->luma_log2_weight_denom : img->chroma_log2_weight_denom;
      img->wp_weight[0][i][comp] = 1<<log_weight_denom;
      img->wp_weight[1][i][comp] = 1<<log_weight_denom;
    }
  }
}


void fill_wp_params(struct img_par *img)
{
  int i, j, k;
  int comp;
  int log_weight_denom;
  int p0, pt;
  int bframe = (img->type==B_SLICE);
  int max_bwd_ref, max_fwd_ref;
  int x,z;

  max_fwd_ref = img->num_ref_idx_l0_active;
  max_bwd_ref = img->num_ref_idx_l1_active;

  if (active_pps->weighted_bipred_idc == 2 && bframe)
  {
    img->luma_log2_weight_denom = 5;
    img->chroma_log2_weight_denom = 5;
    img->wp_round_luma = 16;
    img->wp_round_chroma = 16;

    for (i=0; i<MAX_REFERENCE_PICTURES; i++)
    {
      for (comp=0; comp<3; comp++)
      {
        log_weight_denom = (comp == 0) ? img->luma_log2_weight_denom : img->chroma_log2_weight_denom;
        img->wp_weight[0][i][comp] = 1<<log_weight_denom;
        img->wp_weight[1][i][comp] = 1<<log_weight_denom;
        img->wp_offset[0][i][comp] = 0;
        img->wp_offset[1][i][comp] = 0;
      }
    }
  }

  if (bframe)
  {
    for (i=0; i<max_fwd_ref; i++)
    {
      for (j=0; j<max_bwd_ref; j++)
      {
        for (comp = 0; comp<3; comp++)
        {
          log_weight_denom = (comp == 0) ? img->luma_log2_weight_denom : img->chroma_log2_weight_denom;
          if (active_pps->weighted_bipred_idc == 1)
          {
            img->wbp_weight[0][i][j][comp] =  img->wp_weight[0][i][comp];
            img->wbp_weight[1][i][j][comp] =  img->wp_weight[1][j][comp];
          }
          else if (active_pps->weighted_bipred_idc == 2)
          {
            pt = listX[LIST_1][j]->poc - listX[LIST_0][i]->poc;
            if (pt == 0 || listX[LIST_1][j]->is_long_term || listX[LIST_0][i]->is_long_term)
            {
              img->wbp_weight[0][i][j][comp] =   32;
              img->wbp_weight[1][i][j][comp] =   32;
            }
            else
            {
              p0 = img->ThisPOC - listX[LIST_0][i]->poc;

              x = (16384 + (pt>>1))/pt;
              z = Clip3(-1024, 1023, (x*p0 + 32 )>>6);
              
              img->wbp_weight[1][i][j][comp] = z >> 2;
              img->wbp_weight[0][i][j][comp] = 64 - img->wbp_weight[1][i][j][comp];
              if (img->wbp_weight[1][i][j][comp] < -64 || img->wbp_weight[1][i][j][comp] > 128)
              {
                img->wbp_weight[0][i][j][comp] = 32;
                img->wbp_weight[1][i][j][comp] = 32;
                img->wp_offset[0][i][comp] = 0;
                img->wp_offset[1][i][comp] = 0;
              }
            }
          }
        }
     }
   }
 }

  if (bframe && img->MbaffFrameFlag)
  {
    for (i=0; i<2*max_fwd_ref; i++)
    {
      for (j=0; j<2*max_bwd_ref; j++)
      {
        for (comp = 0; comp<3; comp++)
        {
          for (k=2; k<6; k+=2)
          {
            img->wp_offset[k+0][i][comp] = img->wp_offset[0][i/2][comp];
            img->wp_offset[k+1][i][comp] = img->wp_offset[1][i/2][comp];

            log_weight_denom = (comp == 0) ? img->luma_log2_weight_denom : img->chroma_log2_weight_denom;
            if (active_pps->weighted_bipred_idc == 1)
            {
              img->wbp_weight[k+0][i][j][comp] =  img->wp_weight[0][i/2][comp];
              img->wbp_weight[k+1][i][j][comp] =  img->wp_weight[1][j/2][comp];
            }
            else if (active_pps->weighted_bipred_idc == 2)
            {
              pt = listX[k+LIST_1][j]->poc - listX[k+LIST_0][i]->poc;
              if (pt == 0 || listX[k+LIST_1][j]->is_long_term || listX[k+LIST_0][i]->is_long_term)
              {
                img->wbp_weight[k+0][i][j][comp] =   32;
                img->wbp_weight[k+1][i][j][comp] =   32;
              }
              else
              {
                p0 = ((k==2)?img->toppoc:img->bottompoc) - listX[k+LIST_0][i]->poc;
                
                x = (16384 + (pt>>1))/pt;
                z = Clip3(-1024, 1023, (x*p0 + 32 )>>6);

                img->wbp_weight[k+1][i][j][comp] = z >> 2;
                img->wbp_weight[k+0][i][j][comp] = 64 - img->wbp_weight[k+1][i][j][comp];
                if (img->wbp_weight[k+1][i][j][comp] < -64 || img->wbp_weight[k+1][i][j][comp] > 128)
                {
                  img->wbp_weight[k+1][i][j][comp] = 32;
                  img->wbp_weight[k+0][i][j][comp] = 32;
                  img->wp_offset[k+0][i][comp] = 0;
                  img->wp_offset[k+1][i][comp] = 0;
                }
              }
            }
          }
        }
      }
    }
  }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一区在线| 99精品视频中文字幕| 国产精品美女视频| 欧美人牲a欧美精品| 国产成人在线色| 亚洲一级二级三级在线免费观看| 欧美欧美欧美欧美| 成人a区在线观看| 国内精品国产成人| 香蕉久久一区二区不卡无毒影院| 国产精品女人毛片| 2023国产精品| 精品国产a毛片| 欧美一区二区三区免费| 欧美日韩亚洲综合一区二区三区| 成人av资源网站| 91麻豆精品秘密| 亚洲免费观看在线视频| 久久蜜臀精品av| 日韩精品专区在线影院重磅| 成人夜色视频网站在线观看| 日韩区在线观看| 国产精品影音先锋| 国产在线精品一区二区不卡了| 秋霞午夜av一区二区三区| 亚洲一区二区免费视频| 亚洲资源在线观看| 亚洲国产wwwccc36天堂| 亚洲第一会所有码转帖| 一级日本不卡的影视| 亚洲h在线观看| 美腿丝袜亚洲色图| 国产精品 欧美精品| 国产精品白丝av| 91丝袜美腿高跟国产极品老师 | 日韩激情一二三区| 男女激情视频一区| 国产中文一区二区三区| 不卡一区二区在线| 欧美性高清videossexo| 日韩精品一区二区三区中文精品| 日韩精品一区二区三区四区| 中文字幕乱码一区二区免费| 亚洲美女少妇撒尿| 奇米影视7777精品一区二区| 韩国成人在线视频| 91成人免费网站| 久久久久久亚洲综合影院红桃| 国产精品久久久久久久浪潮网站 | 亚洲成av人片观看| 久久精品国产99| 91久久精品一区二区二区| 91精品国产91久久久久久一区二区| 久久精品亚洲麻豆av一区二区| 亚洲精品中文字幕乱码三区| 精品一区二区三区日韩| 91久久精品一区二区二区| 国产偷v国产偷v亚洲高清| 丝袜美腿亚洲一区二区图片| 成人av在线影院| 久久综合色播五月| 免费在线看一区| 91国偷自产一区二区开放时间| wwww国产精品欧美| 久久国产剧场电影| 91精品国产综合久久久久久| 亚洲欧美成aⅴ人在线观看| 国产精品88av| xf在线a精品一区二区视频网站| 偷偷要91色婷婷| 欧美日韩精品一区二区三区蜜桃| 国产精品午夜在线观看| 高清国产一区二区| 久久久久久久久久久久电影| 国模一区二区三区白浆| 久久中文娱乐网| 国产精品66部| 中日韩免费视频中文字幕| av在线播放不卡| 亚洲人成网站色在线观看| 色八戒一区二区三区| 五月激情丁香一区二区三区| 国产激情视频一区二区三区欧美 | 成人黄色777网| 国产欧美精品在线观看| 粉嫩av一区二区三区在线播放 | 热久久国产精品| 精品国产一区二区三区av性色| 精品一区二区三区在线播放 | 亚洲欧美偷拍三级| 欧美日韩久久久| 久久99精品网久久| 中文字幕亚洲区| 5月丁香婷婷综合| 韩国成人在线视频| 亚洲精品国产高清久久伦理二区| 欧美最猛性xxxxx直播| 六月丁香综合在线视频| 国产日韩精品一区二区三区| 91国模大尺度私拍在线视频| 日韩成人精品在线| 亚洲欧美在线高清| 日韩三级av在线播放| 在线亚洲人成电影网站色www| 久久国产乱子精品免费女| 玉足女爽爽91| 中国av一区二区三区| 欧美电影一区二区| 99久久夜色精品国产网站| 首页综合国产亚洲丝袜| 国产精品欧美精品| 欧美一区二区性放荡片| 色婷婷亚洲综合| 国产精品中文字幕一区二区三区| 亚洲va国产天堂va久久en| 亚洲视频1区2区| 国产精品毛片大码女人| 精品少妇一区二区三区视频免付费| 在线视频国内自拍亚洲视频| 成人性生交大合| 国产a级毛片一区| 国产麻豆精品视频| 麻豆成人91精品二区三区| 亚洲午夜羞羞片| 亚洲地区一二三色| 亚洲一区二区高清| 亚洲一区中文日韩| 一区二区三区在线视频免费| 国产精品剧情在线亚洲| 国产精品视频麻豆| 国产精品污www在线观看| 国产精品日日摸夜夜摸av| 欧美激情在线一区二区| 日本一区二区免费在线观看视频 | 国产网站一区二区三区| 国产日韩精品一区二区三区| 中文字幕第一区| 中文字幕一区二区视频| 亚洲精品免费看| 污片在线观看一区二区| 久久成人久久爱| 91麻豆精品秘密| 日韩免费观看高清完整版| 久久久高清一区二区三区| 久久丝袜美腿综合| 怡红院av一区二区三区| 精品国产一区二区三区忘忧草| 欧美日本不卡视频| 欧美国产在线观看| 亚洲一区在线看| 国产精品亚洲专一区二区三区| 成人综合婷婷国产精品久久免费| 91香蕉视频mp4| 这里是久久伊人| 日韩毛片视频在线看| 日本女优在线视频一区二区| 成人一区二区三区视频在线观看| 色婷婷av一区二区三区之一色屋| 777午夜精品免费视频| 国产精品久久精品日日| 蜜桃av噜噜一区| 日本乱人伦一区| 国产精品美女久久久久久2018| 午夜在线成人av| 色天天综合久久久久综合片| 精品日韩在线观看| 婷婷开心久久网| 91福利资源站| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 中文字幕在线观看不卡| 美腿丝袜亚洲三区| 欧美午夜精品电影| 亚洲人成网站色在线观看| 99视频一区二区三区| 国产亚洲欧美在线| 国产成人亚洲精品狼色在线| 久久综合九色综合久久久精品综合| 日韩有码一区二区三区| 欧美伦理电影网| 偷拍亚洲欧洲综合| 91精品国产高清一区二区三区蜜臀| 一区二区三区中文字幕电影| 91成人在线精品| 亚洲国产中文字幕| 3atv一区二区三区| 美女久久久精品| 久久久久久久久久看片| 北条麻妃一区二区三区| 日韩美女精品在线| 4438亚洲最大| 国产乱淫av一区二区三区| 中文字幕欧美日韩一区| 91美女片黄在线观看91美女| 午夜精品久久久久久久99水蜜桃| 精品视频在线免费观看| 成人免费一区二区三区在线观看| 欧美在线看片a免费观看| 午夜电影网一区| 国产蜜臀av在线一区二区三区| 91日韩一区二区三区|