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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? h264pred.c

?? 64-bits H.264 from ffmpeg 2008 version Build in VC++ 2008 no error warning, Jesse Stone, Taiwan
?? C
?? 第 1 頁 / 共 3 頁
字號:
    LOAD_LEFT_EDGE
    LOAD_DOWN_LEFT_EDGE
    LOAD_TOP_EDGE
    LOAD_TOP_RIGHT_EDGE

    src[0+0*stride]=(t1 + 2*t2 + t3 + 2*l0 + 2*l1 + 4)>>3;
    src[1+0*stride]=(t2 + 2*t3 + t4 + l0 + 2*l1 + l2 + 4)>>3;
    src[2+0*stride]=
    src[0+1*stride]=(t3 + 2*t4 + t5 + 2*l1 + 2*l2 + 4)>>3;
    src[3+0*stride]=
    src[1+1*stride]=(t4 + 2*t5 + t6 + l1 + 2*l2 + l3 + 4)>>3;
    src[2+1*stride]=
    src[0+2*stride]=(t5 + 2*t6 + t7 + 2*l2 + 2*l3 + 4)>>3;
    src[3+1*stride]=
    src[1+2*stride]=(t6 + 3*t7 + l2 + 3*l3 + 4)>>3;
    src[3+2*stride]=
    src[1+3*stride]=(l3 + 2*l4 + l5 + 2)>>2;
    src[0+3*stride]=
    src[2+2*stride]=(t6 + t7 + l3 + l4 + 2)>>2;
    src[2+3*stride]=(l4 + l5 + 1)>>1;
    src[3+3*stride]=(l4 + 2*l5 + l6 + 2)>>2;
}

static void pred4x4_horizontal_up_rv40_nodown_c(uint8_t *src, uint8_t *topright, int stride){
    LOAD_LEFT_EDGE
    LOAD_TOP_EDGE
    LOAD_TOP_RIGHT_EDGE

    src[0+0*stride]=(t1 + 2*t2 + t3 + 2*l0 + 2*l1 + 4)>>3;
    src[1+0*stride]=(t2 + 2*t3 + t4 + l0 + 2*l1 + l2 + 4)>>3;
    src[2+0*stride]=
    src[0+1*stride]=(t3 + 2*t4 + t5 + 2*l1 + 2*l2 + 4)>>3;
    src[3+0*stride]=
    src[1+1*stride]=(t4 + 2*t5 + t6 + l1 + 2*l2 + l3 + 4)>>3;
    src[2+1*stride]=
    src[0+2*stride]=(t5 + 2*t6 + t7 + 2*l2 + 2*l3 + 4)>>3;
    src[3+1*stride]=
    src[1+2*stride]=(t6 + 3*t7 + l2 + 3*l3 + 4)>>3;
    src[3+2*stride]=
    src[1+3*stride]=l3;
    src[0+3*stride]=
    src[2+2*stride]=(t6 + t7 + 2*l3 + 2)>>2;
    src[2+3*stride]=
    src[3+3*stride]=l3;
}

static void pred4x4_horizontal_down_c(uint8_t *src, uint8_t *topright, int stride){
    const int lt= src[-1-1*stride];
    LOAD_TOP_EDGE
    LOAD_LEFT_EDGE

    src[0+0*stride]=
    src[2+1*stride]=(lt + l0 + 1)>>1;
    src[1+0*stride]=
    src[3+1*stride]=(l0 + 2*lt + t0 + 2)>>2;
    src[2+0*stride]=(lt + 2*t0 + t1 + 2)>>2;
    src[3+0*stride]=(t0 + 2*t1 + t2 + 2)>>2;
    src[0+1*stride]=
    src[2+2*stride]=(l0 + l1 + 1)>>1;
    src[1+1*stride]=
    src[3+2*stride]=(lt + 2*l0 + l1 + 2)>>2;
    src[0+2*stride]=
    src[2+3*stride]=(l1 + l2+ 1)>>1;
    src[1+2*stride]=
    src[3+3*stride]=(l0 + 2*l1 + l2 + 2)>>2;
    src[0+3*stride]=(l2 + l3 + 1)>>1;
    src[1+3*stride]=(l1 + 2*l2 + l3 + 2)>>2;
}

static void pred16x16_vertical_c(uint8_t *src, int stride){
    int i;
    const uint32_t a= ((uint32_t*)(src-stride))[0];
    const uint32_t b= ((uint32_t*)(src-stride))[1];
    const uint32_t c= ((uint32_t*)(src-stride))[2];
    const uint32_t d= ((uint32_t*)(src-stride))[3];

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]= a;
        ((uint32_t*)(src+i*stride))[1]= b;
        ((uint32_t*)(src+i*stride))[2]= c;
        ((uint32_t*)(src+i*stride))[3]= d;
    }
}

static void pred16x16_horizontal_c(uint8_t *src, int stride){
    int i;

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]=
        ((uint32_t*)(src+i*stride))[2]=
        ((uint32_t*)(src+i*stride))[3]= src[-1+i*stride]*0x01010101;
    }
}

static void pred16x16_dc_c(uint8_t *src, int stride){
    int i, dc=0;

    for(i=0;i<16; i++){
        dc+= src[-1+i*stride];
    }

    for(i=0;i<16; i++){
        dc+= src[i-stride];
    }

    dc= 0x01010101*((dc + 16)>>5);

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]=
        ((uint32_t*)(src+i*stride))[2]=
        ((uint32_t*)(src+i*stride))[3]= dc;
    }
}

static void pred16x16_left_dc_c(uint8_t *src, int stride){
    int i, dc=0;

    for(i=0;i<16; i++){
        dc+= src[-1+i*stride];
    }

    dc= 0x01010101*((dc + 8)>>4);

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]=
        ((uint32_t*)(src+i*stride))[2]=
        ((uint32_t*)(src+i*stride))[3]= dc;
    }
}

static void pred16x16_top_dc_c(uint8_t *src, int stride){
    int i, dc=0;

    for(i=0;i<16; i++){
        dc+= src[i-stride];
    }
    dc= 0x01010101*((dc + 8)>>4);

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]=
        ((uint32_t*)(src+i*stride))[2]=
        ((uint32_t*)(src+i*stride))[3]= dc;
    }
}

static void pred16x16_128_dc_c(uint8_t *src, int stride){
    int i;

    for(i=0; i<16; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]=
        ((uint32_t*)(src+i*stride))[2]=
        ((uint32_t*)(src+i*stride))[3]= 0x01010101U*128U;
    }
}

static void pred16x16_plane_compat_c(uint8_t *src, int stride, const int svq3, const int rv40){
  int i, j, k;
  int a;
  uint8_t *cm = ff_cropTbl + MAX_NEG_CROP;
  const uint8_t * const src0 = src+7-stride;
  const uint8_t *src1 = src+8*stride-1;
  const uint8_t *src2 = src1-2*stride;      // == src+6*stride-1;
  int H = src0[1] - src0[-1];
  int V = src1[0] - src2[ 0];
  for(k=2; k<=8; ++k) {
    src1 += stride; src2 -= stride;
    H += k*(src0[k] - src0[-k]);
    V += k*(src1[0] - src2[ 0]);
  }
  if(svq3){
    H = ( 5*(H/4) ) / 16;
    V = ( 5*(V/4) ) / 16;

    /* required for 100% accuracy */
    i = H; H = V; V = i;
  }else if(rv40){
    H = ( H + (H>>2) ) >> 4;
    V = ( V + (V>>2) ) >> 4;
  }else{
    H = ( 5*H+32 ) >> 6;
    V = ( 5*V+32 ) >> 6;
  }

  a = 16*(src1[0] + src2[16] + 1) - 7*(V+H);
  for(j=16; j>0; --j) {
    int b = a;
    a += V;
    for(i=-16; i<0; i+=4) {
      src[16+i] = cm[ (b    ) >> 5 ];
      src[17+i] = cm[ (b+  H) >> 5 ];
      src[18+i] = cm[ (b+2*H) >> 5 ];
      src[19+i] = cm[ (b+3*H) >> 5 ];
      b += 4*H;
    }
    src += stride;
  }
}

static void pred16x16_plane_c(uint8_t *src, int stride){
    pred16x16_plane_compat_c(src, stride, 0, 0);
}

static void pred16x16_plane_svq3_c(uint8_t *src, int stride){
    pred16x16_plane_compat_c(src, stride, 1, 0);
}

static void pred16x16_plane_rv40_c(uint8_t *src, int stride){
    pred16x16_plane_compat_c(src, stride, 0, 1);
}

static void pred8x8_vertical_c(uint8_t *src, int stride){
    int i;
    const uint32_t a= ((uint32_t*)(src-stride))[0];
    const uint32_t b= ((uint32_t*)(src-stride))[1];

    for(i=0; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]= a;
        ((uint32_t*)(src+i*stride))[1]= b;
    }
}

static void pred8x8_horizontal_c(uint8_t *src, int stride){
    int i;

    for(i=0; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= src[-1+i*stride]*0x01010101;
    }
}

static void pred8x8_128_dc_c(uint8_t *src, int stride){
    int i;

    for(i=0; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= 0x01010101U*128U;
    }
}

static void pred8x8_left_dc_c(uint8_t *src, int stride){
    int i;
    int dc0, dc2;

    dc0=dc2=0;
    for(i=0;i<4; i++){
        dc0+= src[-1+i*stride];
        dc2+= src[-1+(i+4)*stride];
    }
    dc0= 0x01010101*((dc0 + 2)>>2);
    dc2= 0x01010101*((dc2 + 2)>>2);

    for(i=0; i<4; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= dc0;
    }
    for(i=4; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= dc2;
    }
}

static void pred8x8_left_dc_rv40_c(uint8_t *src, int stride){
    int i;
    int dc0;

    dc0=0;
    for(i=0;i<8; i++)
        dc0+= src[-1+i*stride];
    dc0= 0x01010101*((dc0 + 4)>>3);

    for(i=0; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= dc0;
    }
}

static void pred8x8_top_dc_c(uint8_t *src, int stride){
    int i;
    int dc0, dc1;

    dc0=dc1=0;
    for(i=0;i<4; i++){
        dc0+= src[i-stride];
        dc1+= src[4+i-stride];
    }
    dc0= 0x01010101*((dc0 + 2)>>2);
    dc1= 0x01010101*((dc1 + 2)>>2);

    for(i=0; i<4; i++){
        ((uint32_t*)(src+i*stride))[0]= dc0;
        ((uint32_t*)(src+i*stride))[1]= dc1;
    }
    for(i=4; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]= dc0;
        ((uint32_t*)(src+i*stride))[1]= dc1;
    }
}

static void pred8x8_top_dc_rv40_c(uint8_t *src, int stride){
    int i;
    int dc0;

    dc0=0;
    for(i=0;i<8; i++)
        dc0+= src[i-stride];
    dc0= 0x01010101*((dc0 + 4)>>3);

    for(i=0; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]=
        ((uint32_t*)(src+i*stride))[1]= dc0;
    }
}


static void pred8x8_dc_c(uint8_t *src, int stride){
    int i;
    int dc0, dc1, dc2, dc3;

    dc0=dc1=dc2=0;
    for(i=0;i<4; i++){
        dc0+= src[-1+i*stride] + src[i-stride];
        dc1+= src[4+i-stride];
        dc2+= src[-1+(i+4)*stride];
    }
    dc3= 0x01010101*((dc1 + dc2 + 4)>>3);
    dc0= 0x01010101*((dc0 + 4)>>3);
    dc1= 0x01010101*((dc1 + 2)>>2);
    dc2= 0x01010101*((dc2 + 2)>>2);

    for(i=0; i<4; i++){
        ((uint32_t*)(src+i*stride))[0]= dc0;
        ((uint32_t*)(src+i*stride))[1]= dc1;
    }
    for(i=4; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]= dc2;
        ((uint32_t*)(src+i*stride))[1]= dc3;
    }
}

static void pred8x8_dc_rv40_c(uint8_t *src, int stride){
    int i;
    int dc0=0;

    for(i=0;i<4; i++){
        dc0+= src[-1+i*stride] + src[i-stride];
        dc0+= src[4+i-stride];
        dc0+= src[-1+(i+4)*stride];
    }
    dc0= 0x01010101*((dc0 + 8)>>4);

    for(i=0; i<4; i++){
        ((uint32_t*)(src+i*stride))[0]= dc0;
        ((uint32_t*)(src+i*stride))[1]= dc0;
    }
    for(i=4; i<8; i++){
        ((uint32_t*)(src+i*stride))[0]= dc0;
        ((uint32_t*)(src+i*stride))[1]= dc0;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩在线| 国产麻豆91精品| 日本中文字幕不卡| 亚洲毛片av在线| 亚洲美腿欧美偷拍| 亚洲日本一区二区| 亚洲精品国产视频| 一区二区三区在线视频免费观看| 国产精品欧美一区喷水| 中文av一区二区| 久久国产生活片100| 不卡一二三区首页| 日韩欧美中文字幕制服| 久久午夜电影网| 日韩av一区二| 91蝌蚪porny成人天涯| 精品福利av导航| 精品在线观看视频| 成人精品视频一区二区三区尤物| 日韩一级二级三级精品视频| 欧美日韩一区二区三区免费看| 日韩欧美色电影| 亚洲综合色噜噜狠狠| 国产69精品久久久久777| 欧美不卡一区二区| 中文av字幕一区| 国产成人av影院| 亚洲欧美偷拍三级| 91精品国产一区二区| 国产清纯白嫩初高生在线观看91 | 99久久国产综合精品麻豆 | 一区二区三区四区不卡在线| 亚洲电影第三页| 99国产精品国产精品久久| 中文字幕第一区第二区| 一区二区三区四区av| 日韩二区三区四区| 91丝袜呻吟高潮美腿白嫩在线观看| 麻豆国产精品一区二区三区| 国产精品亚洲专一区二区三区| 欧美亚洲国产一区二区三区va| 久久久久久99精品| 偷拍日韩校园综合在线| 制服丝袜亚洲色图| 亚洲一二三区在线观看| 欧美一三区三区四区免费在线看| 日本中文在线一区| 国产欧美精品一区aⅴ影院| 国内一区二区在线| 亚洲青青青在线视频| 欧美色老头old∨ideo| 青青青爽久久午夜综合久久午夜| 538在线一区二区精品国产| 毛片基地黄久久久久久天堂| 中文av一区特黄| 欧美日韩一区二区三区不卡| 国产一区二区三区香蕉| 欧美亚洲动漫另类| 亚洲私人影院在线观看| 久久久久久一级片| 日韩精品一区二区三区视频播放| 欧美性色欧美a在线播放| 最新热久久免费视频| 成人在线视频首页| 免费看欧美美女黄的网站| 欧美韩国日本综合| 久久理论电影网| 欧美美女一区二区在线观看| 亚洲一区视频在线| 91精品国产综合久久久蜜臀粉嫩| 亚洲三级电影网站| 国产精品1024| 国产欧美日韩精品一区| 91国产视频在线观看| 一区二区三区波多野结衣在线观看 | 日韩欧美第一区| 欧美丝袜自拍制服另类| 色欧美乱欧美15图片| 国产.精品.日韩.另类.中文.在线.播放| 亚洲第一福利一区| 亚洲国产sm捆绑调教视频| 一区二区三区四区五区视频在线观看| 久久精品一区二区三区四区 | 亚洲专区一二三| 一区二区三区蜜桃| 亚洲综合一二区| 亚洲国产视频在线| 日本中文字幕一区| 国产一区在线视频| 国产成人免费av在线| 成人美女视频在线看| 本田岬高潮一区二区三区| 91亚洲精品一区二区乱码| 色狠狠av一区二区三区| 欧美色涩在线第一页| 久久综合色8888| 欧美午夜片在线看| 免费成人你懂的| 亚洲男女毛片无遮挡| 日韩精品一区二区三区swag | 中文字幕一区二区在线播放| 精品三级在线看| 国产三级欧美三级日产三级99| 国产精品久久久久影视| 欧美性一级生活| 粉嫩aⅴ一区二区三区四区五区| 蜜桃一区二区三区在线| 激情综合五月天| 黄色日韩网站视频| 色综合久久88色综合天天| 在线免费视频一区二区| 色先锋久久av资源部| 91福利国产成人精品照片| 日韩一区二区在线免费观看| 中文字幕第一区综合| 蜜臀av性久久久久蜜臀aⅴ| 成人免费看片app下载| 91精品国产色综合久久久蜜香臀| 精品对白一区国产伦| 亚洲一区中文日韩| 成人h版在线观看| 精品少妇一区二区三区视频免付费 | 91黄视频在线观看| 久久久噜噜噜久噜久久综合| 日韩经典一区二区| 色av成人天堂桃色av| 中文字幕av一区二区三区高| 日韩精品亚洲一区| 日本高清不卡在线观看| 国产精品人妖ts系列视频| 国产一区二区美女| 久久精品一区蜜桃臀影院| 国产一区二区三区久久久 | 蜜臀av一区二区在线观看| 欧美性xxxxx极品少妇| 亚洲午夜久久久久久久久久久| 99精品1区2区| 亚洲国产成人高清精品| 欧美日韩在线免费视频| 午夜视频在线观看一区二区 | 一本大道av一区二区在线播放 | 久久99精品久久久久久久久久久久| 精品视频在线免费观看| 天天综合网天天综合色| 欧美成人aa大片| 成人综合婷婷国产精品久久| 亚洲欧洲综合另类在线| 91麻豆精品国产91久久久久久 | 午夜精品一区二区三区免费视频| 正在播放亚洲一区| 波多野结衣欧美| 日韩激情av在线| 中文字幕乱码一区二区免费| 欧美三级欧美一级| 粉嫩欧美一区二区三区高清影视| 亚洲主播在线播放| 久久精品亚洲精品国产欧美| 欧美喷潮久久久xxxxx| 不卡视频一二三| 精品一区二区三区久久| 亚洲一区二区高清| 国产精品欧美精品| 26uuu色噜噜精品一区| 欧美日韩精品一区二区三区| 成人激情图片网| 国产精品一二三四| 国产福利一区在线| 麻豆国产精品777777在线| 午夜欧美在线一二页| 亚洲综合视频网| 亚洲女性喷水在线观看一区| 欧美国产乱子伦| 亚洲国产精品精华液2区45| 精品免费一区二区三区| 欧美一区二区三区四区视频| 欧美久久婷婷综合色| 欧美高清dvd| 欧美一区二区三区四区在线观看| 欧美日韩视频在线第一区| 欧美视频中文字幕| 欧美一级爆毛片| 久久夜色精品国产欧美乱极品| 欧美va亚洲va| 国产色婷婷亚洲99精品小说| 久久综合丝袜日本网| 国产精品美女久久久久高潮| 国产精品系列在线| 亚洲欧美日韩中文播放| 亚洲最新视频在线观看| 日本中文一区二区三区| 国产精品一区二区三区四区 | 日韩毛片一二三区| 亚洲午夜视频在线| 国内精品国产三级国产a久久| 丁香天五香天堂综合| 欧美日韩日日夜夜| 国产日产欧美一区二区视频| 一区二区日韩av| 粉嫩av亚洲一区二区图片| 欧美老年两性高潮|