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

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

?? mc.c

?? 法國人的264代碼 大家看看啊,里面有很多可以借鑒的東西啊
?? C
?? 第 1 頁 / 共 2 頁
字號:
    }    else    {        mc_copy( src1, i_src_stride, dst, i_dst_stride, i_width, i_height );    }}static uint8_t *get_ref( uint8_t *src[4], int i_src_stride,                         uint8_t *dst,    int * i_dst_stride,                         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;    }}#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 = x264_mc_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一区二区三区免费野_久草精品视频
国产亚洲精品资源在线26u| 日韩一级高清毛片| 国产成人亚洲精品狼色在线| 天天综合天天综合色| 亚洲国产综合人成综合网站| 亚洲欧美日韩一区二区 | 日韩国产高清在线| 亚洲v中文字幕| 亚洲成年人网站在线观看| 一二三区精品福利视频| 亚洲动漫第一页| 偷窥少妇高潮呻吟av久久免费| 亚洲一区二区三区四区在线免费观看 | 成人小视频免费观看| 国产一区二区三区在线观看免费视频| 国产一区欧美二区| 成人午夜在线播放| 一本久道中文字幕精品亚洲嫩| 91国内精品野花午夜精品| 欧美日韩不卡在线| 欧美mv日韩mv国产| 国产欧美1区2区3区| 亚洲手机成人高清视频| 午夜欧美在线一二页| 另类调教123区| 不卡一区二区在线| 欧美性色黄大片| 亚洲精品一区二区三区蜜桃下载 | 99久久综合精品| 欧美性猛交xxxxxx富婆| 日韩视频在线永久播放| 欧美激情一区二区三区蜜桃视频| 日韩美女视频一区二区| 美女精品一区二区| caoporen国产精品视频| 欧美嫩在线观看| 久久精品水蜜桃av综合天堂| 亚洲黄色av一区| 美女爽到高潮91| 99久久精品国产毛片| 欧美一区二区三区成人| 国产精品电影一区二区三区| 秋霞电影一区二区| 色就色 综合激情| 久久综合色播五月| 午夜激情综合网| 成人v精品蜜桃久久一区| 在线观看91av| 亚洲丝袜另类动漫二区| 精品一二三四区| 在线成人av网站| 亚洲四区在线观看| 国产91精品一区二区麻豆网站| 欧美区在线观看| 亚洲日本在线观看| 丁香五精品蜜臀久久久久99网站 | 国产黑丝在线一区二区三区| 欧美福利视频导航| 又紧又大又爽精品一区二区| 国产电影一区二区三区| 日韩欧美成人激情| 日韩国产在线观看一区| 欧美亚洲动漫另类| 亚洲精品视频一区二区| 99re这里只有精品视频首页| 欧美激情一区不卡| 成人性生交大合| 久久美女艺术照精彩视频福利播放| 三级在线观看一区二区 | 美日韩一级片在线观看| 欧美日韩久久一区二区| 亚洲免费av网站| 99久久久久久| 亚洲欧美乱综合| 色综合天天综合网国产成人综合天| 国产欧美一区二区精品性色| 韩国女主播成人在线| 久久久久久麻豆| 粉嫩13p一区二区三区| 国产精品视频你懂的| 成人国产精品免费网站| 日韩伦理免费电影| 欧洲亚洲精品在线| 日韩专区欧美专区| 精品久久久久久久久久久久久久久 | 中文字幕一区二区5566日韩| 成人免费观看av| 亚洲少妇最新在线视频| 91成人免费网站| 三级在线观看一区二区| 欧美变态口味重另类| 国产精品中文字幕日韩精品 | 韩国视频一区二区| 中文字幕欧美国产| 色视频成人在线观看免| 日本中文字幕一区二区视频 | 欧美一区二区三区在线观看视频| 免费成人在线播放| 久久精品视频免费观看| av激情亚洲男人天堂| 夜夜揉揉日日人人青青一国产精品| 欧美色网站导航| 麻豆91在线观看| 亚洲国产激情av| 在线精品观看国产| 韩国理伦片一区二区三区在线播放| 国产丝袜欧美中文另类| 欧洲一区二区三区免费视频| 麻豆精品久久精品色综合| 国产精品久久精品日日| 欧美在线视频日韩| 极品销魂美女一区二区三区| 最新热久久免费视频| 欧美一级高清片在线观看| 成人av在线资源| 日韩高清电影一区| 亚洲欧美欧美一区二区三区| 亚洲精品一区二区三区福利| av亚洲精华国产精华精| 蜜桃视频一区二区三区| 自拍偷拍国产精品| 国产亚洲女人久久久久毛片| 欧美精品在线观看播放| 不卡一区二区三区四区| 精品一区二区三区日韩| 亚洲国产精品人人做人人爽| 国产精品久久久久久久第一福利 | 91农村精品一区二区在线| 蜜臀久久99精品久久久画质超高清| 国产精品免费久久久久| 欧美不卡在线视频| 91精品国产一区二区三区蜜臀| 91首页免费视频| 国产69精品久久99不卡| 久久精品国产精品亚洲红杏| 亚洲成a人片在线观看中文| 亚洲日本乱码在线观看| 国产欧美日产一区| 久久久久亚洲综合| 精品久久久久久久人人人人传媒| 欧美日韩亚州综合| 欧美午夜免费电影| 在线一区二区观看| 在线看日本不卡| 91社区在线播放| 99精品黄色片免费大全| 不卡的电影网站| 成人精品在线视频观看| 国产成人免费视频网站| 国产精品综合网| 国产精品系列在线观看| 国产在线视视频有精品| 激情久久五月天| 精品在线一区二区三区| 青青草国产精品亚洲专区无| 蜜桃一区二区三区四区| 久久精品99国产精品日本| 免费成人性网站| 毛片av中文字幕一区二区| 免费的国产精品| 精品亚洲porn| 国产黄色成人av| 99视频精品免费视频| 色婷婷激情综合| 欧美三级一区二区| 67194成人在线观看| 精品国产免费一区二区三区香蕉| 精品久久久久久久久久久久包黑料 | 91精品国产乱| 日韩美一区二区三区| 久久青草国产手机看片福利盒子| 久久久高清一区二区三区| 中文字幕在线视频一区| 亚洲尤物视频在线| 久久激情五月激情| 国产凹凸在线观看一区二区| 97超碰欧美中文字幕| 欧美美女网站色| 久久九九全国免费| 亚洲免费伊人电影| 奇米精品一区二区三区在线观看| 精品亚洲国产成人av制服丝袜 | 蜜桃视频在线观看一区二区| 激情深爱一区二区| 99re热视频精品| 欧美一区二区免费视频| 亚洲精品在线电影| 亚洲精品国产第一综合99久久 | 欧美一区二区三区四区久久| 国产亚洲美州欧州综合国| 一区二区三区欧美日韩| 久久99在线观看| 97精品电影院| 精品毛片乱码1区2区3区| 亚洲精品v日韩精品| 激情图区综合网| 欧美日韩国产美| 国产精品久久夜| 国产在线不卡一卡二卡三卡四卡| 欧美视频中文一区二区三区在线观看|