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

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

?? mc.c

?? 絕對好的源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
                         int mvx,int mvy,                         int i_width, int i_height ){    int qpel_idx = ((mvy&3)<<2) + (mvx&3);    int offset = (mvy>>2)*i_src_stride + (mvx>>2);    uint8_t *src1 = src[hpel_ref0[qpel_idx]] + offset + ((mvy&3) == 3) * i_src_stride;    if( qpel_idx & 5 ) /* qpel interpolation needed */    {        uint8_t *src2 = src[hpel_ref1[qpel_idx]] + offset + ((mvx&3) == 3);        pixel_avg( dst, *i_dst_stride, src1, i_src_stride,                   src2, i_src_stride, i_width, i_height );        return dst;    }    else    {        *i_dst_stride = i_src_stride;        return src1;    }}/* full chroma mc (ie until 1/8 pixel)*/static void motion_compensation_chroma( uint8_t *src, int i_src_stride,                                        uint8_t *dst, int i_dst_stride,                                        int mvx, int mvy,                                        int i_width, int i_height ){    uint8_t *srcp;    int x, y;    const int d8x = mvx&0x07;    const int d8y = mvy&0x07;    const int cA = (8-d8x)*(8-d8y);    const int cB = d8x    *(8-d8y);    const int cC = (8-d8x)*d8y;    const int cD = d8x    *d8y;    src  += (mvy >> 3) * i_src_stride + (mvx >> 3);    srcp = &src[i_src_stride];    for( y = 0; y < i_height; y++ )    {        for( x = 0; x < i_width; x++ )        {            dst[x] = ( cA*src[x]  + cB*src[x+1] +                       cC*srcp[x] + cD*srcp[x+1] + 32 ) >> 6;        }        dst  += i_dst_stride;        src   = srcp;        srcp += i_src_stride;    }}#ifdef HAVE_MMXEXTstatic void motion_compensation_chroma_mmxext( uint8_t *src, int i_src_stride,                                        uint8_t *dst, int i_dst_stride,                                        int mvx, int mvy,                                        int i_width, int i_height ){    if (i_width == 2) {        motion_compensation_chroma(src, i_src_stride, dst, i_dst_stride,                                   mvx, mvy, i_width, i_height);    } else {        const int d8x = mvx&0x07;        const int d8y = mvy&0x07;                src  += (mvy >> 3) * i_src_stride + (mvx >> 3);                x264_mc_chroma_mmxext( src, i_src_stride, dst, i_dst_stride,                               d8x, d8y, i_width, i_height );    }}#endif#define MC_COPY(W) \static void mc_copy_w##W( uint8_t *dst, int i_dst, uint8_t *src, int i_src, int i_height ) \{ \    mc_copy( src, i_src, dst, i_dst, W, i_height ); \}MC_COPY( 16 )MC_COPY( 8 )MC_COPY( 4 )void x264_mc_init( int cpu, x264_mc_functions_t *pf ){    pf->mc_luma   = mc_luma;    pf->get_ref   = get_ref;    pf->mc_chroma = motion_compensation_chroma;    pf->avg[PIXEL_16x16]= pixel_avg_16x16;    pf->avg[PIXEL_16x8] = pixel_avg_16x8;    pf->avg[PIXEL_8x16] = pixel_avg_8x16;    pf->avg[PIXEL_8x8]  = pixel_avg_8x8;    pf->avg[PIXEL_8x4]  = pixel_avg_8x4;    pf->avg[PIXEL_4x8]  = pixel_avg_4x8;    pf->avg[PIXEL_4x4]  = pixel_avg_4x4;    pf->avg[PIXEL_4x2]  = pixel_avg_4x2;    pf->avg[PIXEL_2x4]  = pixel_avg_2x4;    pf->avg[PIXEL_2x2]  = pixel_avg_2x2;        pf->avg_weight[PIXEL_16x16]= pixel_avg_weight_16x16;    pf->avg_weight[PIXEL_16x8] = pixel_avg_weight_16x8;    pf->avg_weight[PIXEL_8x16] = pixel_avg_weight_8x16;    pf->avg_weight[PIXEL_8x8]  = pixel_avg_weight_8x8;    pf->avg_weight[PIXEL_8x4]  = pixel_avg_weight_8x4;    pf->avg_weight[PIXEL_4x8]  = pixel_avg_weight_4x8;    pf->avg_weight[PIXEL_4x4]  = pixel_avg_weight_4x4;    pf->avg_weight[PIXEL_4x2]  = pixel_avg_weight_4x2;    pf->avg_weight[PIXEL_2x4]  = pixel_avg_weight_2x4;    pf->avg_weight[PIXEL_2x2]  = pixel_avg_weight_2x2;    pf->copy[PIXEL_16x16] = mc_copy_w16;    pf->copy[PIXEL_8x8]   = mc_copy_w8;    pf->copy[PIXEL_4x4]   = mc_copy_w4;#ifdef HAVE_MMXEXT    if( cpu&X264_CPU_MMXEXT ) {        x264_mc_mmxext_init( pf );        pf->mc_chroma = motion_compensation_chroma_mmxext;    }#endif#ifdef HAVE_SSE2    if( cpu&X264_CPU_SSE2 )        x264_mc_sse2_init( pf );#endif#ifdef ARCH_PPC    if( cpu&X264_CPU_ALTIVEC )        x264_mc_altivec_init( pf );#endif}extern void x264_horizontal_filter_mmxext( uint8_t *dst, int i_dst_stride,                                           uint8_t *src, int i_src_stride,                                           int i_width, int i_height );extern void x264_center_filter_mmxext( uint8_t *dst1, int i_dst1_stride,                                       uint8_t *dst2, int i_dst2_stride,                                       uint8_t *src, int i_src_stride,                                       int i_width, int i_height );void x264_frame_filter( int cpu, x264_frame_t *frame ){    const int x_inc = 16, y_inc = 16;    const int stride = frame->i_stride[0];    int x, y;    pf_mc_t int_h = mc_hh;    pf_mc_t int_v = mc_hv;    pf_mc_t int_hv = mc_hc;#ifdef HAVE_MMXEXT    if ( cpu & X264_CPU_MMXEXT )    {        x264_horizontal_filter_mmxext(frame->filtered[1] - 8 * stride - 8, stride,            frame->plane[0] - 8 * stride - 8, stride,            stride - 48, frame->i_lines[0] + 16);        x264_center_filter_mmxext(frame->filtered[2] - 8 * stride - 8, stride,            frame->filtered[3] - 8 * stride - 8, stride,            frame->plane[0] - 8 * stride - 8, stride,            stride - 48, frame->i_lines[0] + 16);    }    else#endif    {        for( y = -8; y < frame->i_lines[0]+8; y += y_inc )        {            uint8_t *p_in = frame->plane[0] + y * stride - 8;            uint8_t *p_h  = frame->filtered[1] + y * stride - 8;            uint8_t *p_v  = frame->filtered[2] + y * stride - 8;            uint8_t *p_hv = frame->filtered[3] + y * stride - 8;            for( x = -8; x < stride - 64 + 8; x += x_inc )            {                int_h(  p_in, stride, p_h,  stride, x_inc, y_inc );                int_v(  p_in, stride, p_v,  stride, x_inc, y_inc );                int_hv( p_in, stride, p_hv, stride, x_inc, y_inc );                p_h += x_inc;                p_v += x_inc;                p_hv += x_inc;                p_in += x_inc;            }        }    }    /* generate integral image:     * each entry in frame->integral is the sum of all luma samples above and     * to the left of its location (inclusive).     * this allows us to calculate the DC of any rectangle by looking only     * at the corner entries.     * individual entries will overflow 16 bits, but that's ok:     * we only need the differences between entries, and those will be correct     * as long as we don't try to evaluate a rectangle bigger than 16x16.     * likewise, we don't really have to init the edges to 0, leaving garbage     * there wouldn't affect the results.*/    if( frame->integral )    {        memset( frame->integral - 32 * stride - 32, 0, stride * sizeof(uint16_t) );        for( y = -31; y < frame->i_lines[0] + 32; y++ )        {            uint8_t  *ref  = frame->plane[0] + y * stride - 32;            uint16_t *line = frame->integral + y * stride - 32;            uint16_t v = line[0] = 0;            for( x = 1; x < stride; x++ )                line[x] = v += ref[x] + line[x-stride] - line[x-stride-1];        }    }}void x264_frame_init_lowres( int cpu, x264_frame_t *frame ){    // FIXME: tapfilter?    const int i_stride = frame->i_stride[0];    const int i_stride2 = frame->i_stride_lowres;    const int i_width2 = i_stride2 - 64;    int x, y, i;    for( y = 0; y < frame->i_lines_lowres - 1; y++ )    {        uint8_t *src0 = &frame->plane[0][2*y*i_stride];        uint8_t *src1 = src0+i_stride;        uint8_t *src2 = src1+i_stride;        uint8_t *dst0 = &frame->lowres[0][y*i_stride2];        uint8_t *dsth = &frame->lowres[1][y*i_stride2];        uint8_t *dstv = &frame->lowres[2][y*i_stride2];        uint8_t *dstc = &frame->lowres[3][y*i_stride2];        for( x = 0; x < i_width2 - 1; x++ )        {            dst0[x] = (src0[2*x  ] + src0[2*x+1] + src1[2*x  ] + src1[2*x+1] + 2) >> 2;            dsth[x] = (src0[2*x+1] + src0[2*x+2] + src1[2*x+1] + src1[2*x+2] + 2) >> 2;            dstv[x] = (src1[2*x  ] + src1[2*x+1] + src2[2*x  ] + src2[2*x+1] + 2) >> 2;            dstc[x] = (src1[2*x+1] + src1[2*x+2] + src2[2*x+1] + src2[2*x+2] + 2) >> 2;        }        dst0[x] = (src0[2*x  ] + src0[2*x+1] + src1[2*x  ] + src1[2*x+1] + 2) >> 2;        dstv[x] = (src1[2*x  ] + src1[2*x+1] + src2[2*x  ] + src2[2*x+1] + 2) >> 2;        dsth[x] = (src0[2*x+1] + src1[2*x+1] + 1) >> 1;        dstc[x] = (src1[2*x+1] + src2[2*x+1] + 1) >> 1;    }    for( i = 0; i < 4; i++ )        memcpy( &frame->lowres[i][y*i_stride2], &frame->lowres[i][(y-1)*i_stride2], i_width2 );    for( y = 0; y < 16; y++ )        for( x = 0; x < 16; x++ )            frame->i_cost_est[x][y] = -1;    x264_frame_expand_border_lowres( frame );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线免费不卡| 日本免费新一区视频| 综合在线观看色| 国产一区不卡在线| 黄色精品一二区| 欧美一区二区三区婷婷月色| 91在线国产福利| eeuss影院一区二区三区| 成人性生交大片免费看视频在线| 麻豆精品一区二区av白丝在线| 日韩成人免费在线| 99热99精品| 欧美一级精品大片| 欧美最猛黑人xxxxx猛交| 99久久精品国产观看| 91色九色蝌蚪| 久久久蜜桃精品| 亚洲精品水蜜桃| 理论片日本一区| 成人美女视频在线观看| 欧美日本一区二区三区四区| 欧美日韩高清在线播放| 自拍偷拍亚洲欧美日韩| 久久精品国产澳门| 色综合激情久久| 欧美v日韩v国产v| 亚洲一区二区在线观看视频| 国产精品中文有码| 欧美va日韩va| 成人妖精视频yjsp地址| 久久精品噜噜噜成人av农村| 在线观看欧美精品| 中文字幕欧美激情| 粉嫩av亚洲一区二区图片| 国产人伦精品一区二区| 亚洲同性gay激情无套| 日本成人在线网站| 91精品福利在线| 色偷偷成人一区二区三区91| 制服.丝袜.亚洲.中文.综合| 精品国产电影一区二区| 视频一区二区三区入口| 性久久久久久久| 激情欧美日韩一区二区| 日韩美女视频一区| 日本美女视频一区二区| 色综合天天综合网天天狠天天| 91麻豆精品国产91久久久久久| 国产欧美日韩不卡免费| 免费成人在线视频观看| 欧美中文字幕亚洲一区二区va在线| 久久天天做天天爱综合色| 日本伊人午夜精品| 日韩亚洲欧美在线| 懂色av中文字幕一区二区三区| 国产人久久人人人人爽| 色综合一个色综合| 久久青草欧美一区二区三区| 丁香婷婷深情五月亚洲| 亚洲日穴在线视频| 欧美久久久久久久久中文字幕| 大胆欧美人体老妇| 精品黑人一区二区三区久久| 亚洲国产精品自拍| 日韩精品免费专区| 国产一区二区精品久久99| 97久久精品人人爽人人爽蜜臀| 欧洲av在线精品| 欧美经典三级视频一区二区三区| 一区二区在线观看不卡| 韩国精品主播一区二区在线观看 | 成人av网址在线| 成人黄色一级视频| 精品影院一区二区久久久| 亚洲一区在线观看免费观看电影高清 | 韩国三级电影一区二区| 成人精品国产免费网站| 欧美一级xxx| 一区二区三区四区精品在线视频| 国产.欧美.日韩| 久久久国际精品| 国产91在线观看| 国产精品久久久久久久久久久免费看| 国产91在线|亚洲| 国产精品电影一区二区三区| 91色在线porny| 亚洲成人午夜电影| 欧美一区二区三区不卡| 国产综合色在线| 国产精品久久网站| 欧美视频在线一区二区三区| 日韩激情在线观看| 欧美一区二区三区免费视频| 久久精品国产成人一区二区三区 | 天天操天天综合网| 正在播放亚洲一区| 国内成人精品2018免费看| 国产欧美一区二区精品久导航| 成人免费观看视频| 午夜精品福利一区二区三区蜜桃| 91麻豆精品国产91久久久久久久久 | 91麻豆免费视频| 亚洲国产精品综合小说图片区| 337p亚洲精品色噜噜噜| 精品一区二区三区久久| 亚洲特级片在线| 欧美一区二区日韩| 国产91丝袜在线播放0| 亚洲国产成人av好男人在线观看| 日韩欧美亚洲另类制服综合在线| 国产成人免费在线观看| 亚洲一区在线看| 国产亚洲欧美激情| 欧美日韩在线观看一区二区| 精品一区二区在线视频| 亚洲最快最全在线视频| 2020国产精品久久精品美国| 欧洲国内综合视频| 国产成人av影院| 日韩专区在线视频| 中文字幕综合网| 久久亚洲精品国产精品紫薇| 欧美亚洲动漫精品| 99精品国产一区二区三区不卡| 奇米888四色在线精品| 一区二区三区日韩欧美| 久久久久久亚洲综合| 欧美精品精品一区| 在线观看亚洲成人| 99久久亚洲一区二区三区青草| 蜜臀av在线播放一区二区三区| 亚洲女同女同女同女同女同69| 精品999在线播放| 欧美高清你懂得| 色94色欧美sute亚洲线路一久| 国产精一品亚洲二区在线视频| 日韩国产欧美在线观看| 亚洲国产日韩在线一区模特| 亚洲欧美一区二区三区国产精品| 久久久www成人免费毛片麻豆| 日韩一区二区三区在线| 欧美另类videos死尸| 欧美综合一区二区三区| 91尤物视频在线观看| 不卡影院免费观看| 成人午夜电影网站| 成人免费毛片嘿嘿连载视频| 国产一区二区三区精品视频| 麻豆中文一区二区| 日本在线播放一区二区三区| 视频一区在线播放| 日本美女一区二区三区视频| 日本伊人午夜精品| 久久er99热精品一区二区| 美女在线一区二区| 极品少妇xxxx精品少妇偷拍| 黄页网站大全一区二区| 国内精品嫩模私拍在线| 国产精品一二三四区| 国产精品自产自拍| 成人性生交大片免费看在线播放| 成人亚洲精品久久久久软件| www.日韩大片| 欧美伊人精品成人久久综合97| 欧美专区在线观看一区| 欧美高清激情brazzers| 欧美成人一级视频| 欧美激情综合在线| 一个色妞综合视频在线观看| 午夜伦理一区二区| 理论电影国产精品| 粉嫩一区二区三区性色av| 9色porny自拍视频一区二区| 91福利国产精品| 欧美一级欧美三级在线观看| 久久免费的精品国产v∧| 国产精品网站一区| 亚洲韩国精品一区| 国产一区二区三区免费| 不卡一区二区在线| 91精品国产高清一区二区三区| 欧美电影免费观看完整版| 亚洲国产高清不卡| 五月综合激情婷婷六月色窝| 国产一本一道久久香蕉| 欧洲国内综合视频| www亚洲一区| 亚洲伊人色欲综合网| 国产又粗又猛又爽又黄91精品| 91农村精品一区二区在线| 91精品国产一区二区三区香蕉| 国产日韩欧美精品在线| 首页综合国产亚洲丝袜| 豆国产96在线|亚洲| 91精品国产综合久久久久| 国产精品不卡一区二区三区| 奇米精品一区二区三区在线观看 | 色一情一伦一子一伦一区| 日韩一区二区视频| 一区二区在线看|