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

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

?? macroblock.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
    }}void x264_mb_predict_mv_pskip( x264_macroblock_t *mb, int mv[2] ){    int x, y, xn, yn;    int i_refa = -1;    int i_refb = -1;    int mvxa = 0, mvxb = 0;    int mvya = 0, mvyb = 0;    x264_macroblock_t *mbn;    x264_mb_partition_getxy( mb, 0, 0, &x, &y );    /* Left  pixel (-1,0)*/    xn = x - 1;    mbn = mb;    if( xn < 0 )    {        xn += 4;        mbn = mb->context->mba;    }    if( mbn )    {        i_refa = -2;        if( !IS_INTRA( mbn->i_type ) && mbn->partition[xn][y].i_ref[0] != -1 )        {            i_refa = mbn->partition[xn][y].i_ref[0];            mvxa   = mbn->partition[xn][y].mv[0][0];            mvya   = mbn->partition[xn][y].mv[0][1];        }    }    /* Up ( pixel(0,-1)*/    yn = y - 1;    mbn = mb;    if( yn < 0 )    {        yn += 4;        mbn = mb->context->mbb;    }    if( mbn )    {        i_refb = -2;        if( !IS_INTRA( mbn->i_type ) && mbn->partition[x][yn].i_ref[0] != -1 )        {            i_refb = mbn->partition[x][yn].i_ref[0];            mvxb   = mbn->partition[x][yn].mv[0][0];            mvyb   = mbn->partition[x][yn].mv[0][1];        }    }    if( i_refa == -1 || i_refb == -1 ||        ( i_refa == 0 && mvxa == 0 && mvya == 0 ) ||        ( i_refb == 0 && mvxb == 0 && mvyb == 0 ) )    {        mv[0] = 0;        mv[1] = 0;    }    else    {        x264_mb_predict_mv( mb, 0, 0, 0, mv );    }}static inline void x264_mb_mc_partition_lx( x264_t *h, x264_macroblock_t *mb, int i_list, int i_part, int i_sub ){    const x264_mb_context_t *ctx = mb->context;    int mx, my;    int i_ref;    int i_width, i_height;    int x, y;    int ch;    int      i_dst;    uint8_t *p_dst;    int      i_src;    uint8_t *p_src;    x264_mb_partition_get(   mb, i_list, i_part, i_sub, &i_ref, &mx, &my );    x264_mb_partition_getxy( mb, i_part, i_sub, &x, &y );    x264_mb_partition_size(  mb, i_part, i_sub, &i_width, &i_height );    if( ( i_list == 0 && i_ref > h->i_ref0 ) ||        ( i_list == 1 && i_ref > h->i_ref1 ) ||        i_ref < 0 )    {        fprintf( stderr, "invalid ref frame\n" );        return;    }    i_dst = ctx->i_fdec[0];         p_dst = ctx->p_fdec[0];    if( i_list == 0 )    {        i_src = ctx->i_fref0[i_ref][0]; p_src= ctx->p_fref0[i_ref][0];    }    else    {        i_src = ctx->i_fref1[i_ref][0]; p_src= ctx->p_fref1[i_ref][0];    }    h->mc[MC_LUMA]( &p_src[4*(x+y*i_src)], i_src,                    &p_dst[4*(x+y*i_dst)], i_dst,                    mx, my, 4*i_width, 4*i_height );    for( ch = 0; ch < 2; ch++ )    {        i_dst = ctx->i_fdec[1+ch];         p_dst = ctx->p_fdec[1+ch];        if( i_list == 0 )        {            i_src = ctx->i_fref0[i_ref][1+ch]; p_src = ctx->p_fref0[i_ref][1+ch];        }        else        {            i_src = ctx->i_fref1[i_ref][1+ch]; p_src = ctx->p_fref1[i_ref][1+ch];        }        h->mc[MC_CHROMA]( &p_src[2*(x+y*i_src)], i_src,                          &p_dst[2*(x+y*i_dst)], i_dst,                          mx, my, 2*i_width, 2*i_height );    }}static void x264_mb_mc_partition_bi( x264_t *h, x264_macroblock_t *mb, int i_part, int i_sub ){    const x264_mb_context_t *ctx = mb->context;    int mx, my;    int i_ref;    int i_width, i_height;    int x, y;    int      i_dst;    uint8_t *p_dst;    int      i_src;    uint8_t *p_src;    int ch;    uint8_t tmp[16*16];    x264_mb_partition_getxy( mb, i_part, i_sub, &x, &y );    x264_mb_partition_size(  mb, i_part, i_sub, &i_width, &i_height );    /* first do l0 */    x264_mb_partition_get(   mb, 0, i_part, i_sub, &i_ref, &mx, &my );    if( i_ref > h->i_ref0 || i_ref < 0 )    {        fprintf( stderr, "invalid ref frame\n" );        return;    }    i_dst = ctx->i_fdec[0];         p_dst = ctx->p_fdec[0];    i_src = ctx->i_fref0[i_ref][0]; p_src= ctx->p_fref0[i_ref][0];    h->mc[MC_LUMA]( &p_src[4*(x+y*i_src)], i_src,                    &p_dst[4*(x+y*i_dst)], i_dst,                    mx, my, 4*i_width, 4*i_height );    for( ch = 0; ch < 2; ch++ )    {        i_dst = ctx->i_fdec[1+ch];         p_dst = ctx->p_fdec[1+ch];        i_src = ctx->i_fref0[i_ref][1+ch]; p_src = ctx->p_fref0[i_ref][1+ch];        h->mc[MC_CHROMA]( &p_src[2*(x+y*i_src)], i_src,                          &p_dst[2*(x+y*i_dst)], i_dst,                          mx, my, 2*i_width, 2*i_height );    }    /* next avg with l1 */    x264_mb_partition_get(   mb, 1, i_part, i_sub, &i_ref, &mx, &my );    if( i_ref > h->i_ref1 || i_ref < 0 )    {        fprintf( stderr, "invalid ref frame\n" );        return;    }    i_dst = ctx->i_fdec[0];         p_dst = ctx->p_fdec[0];    i_src = ctx->i_fref1[i_ref][0]; p_src= ctx->p_fref1[i_ref][0];    h->mc[MC_LUMA]( &p_src[4*(x+y*i_src)], i_src,                    tmp, 16,                    mx, my, 4*i_width, 4*i_height );    if( mb->i_partition == D_16x16 )    {        h->pixf.avg[PIXEL_16x16]( &p_dst[4*(x+y*i_dst)], i_dst, tmp, 16 );    }    else if( mb->i_partition == D_16x8 )    {        h->pixf.avg[PIXEL_16x8]( &p_dst[4*(x+y*i_dst)], i_dst, tmp, 16 );    }    else if( mb->i_partition == D_8x16 )    {        h->pixf.avg[PIXEL_8x16]( &p_dst[4*(x+y*i_dst)], i_dst, tmp, 16 );    }    else    {        fprintf( stderr, "MC BI with D_8x8 unsupported\n" );    }    for( ch = 0; ch < 2; ch++ )    {        i_dst = ctx->i_fdec[1+ch];         p_dst = ctx->p_fdec[1+ch];        i_src = ctx->i_fref1[i_ref][1+ch]; p_src = ctx->p_fref1[i_ref][1+ch];        h->mc[MC_CHROMA]( &p_src[2*(x+y*i_src)], i_src,                          tmp, 8,                          mx, my, 2*i_width, 2*i_height );        if( mb->i_partition == D_16x16 )        {            h->pixf.avg[PIXEL_8x8]( &p_dst[2*(x+y*i_dst)], i_dst, tmp, 8 );        }        else if( mb->i_partition == D_16x8 )        {            h->pixf.avg[PIXEL_8x4]( &p_dst[2*(x+y*i_dst)], i_dst, tmp, 8 );        }        else if( mb->i_partition == D_8x16 )        {            h->pixf.avg[PIXEL_4x8]( &p_dst[2*(x+y*i_dst)], i_dst, tmp, 8 );        }        else        {            fprintf( stderr, "MC BI with D_8x8 unsupported\n" );        }    }}void x264_mb_mc( x264_t *h, x264_macroblock_t *mb ){    const x264_mb_context_t *ctx = mb->context;    if( mb->i_type == P_L0 )    {        const int i_ref0 = mb->partition[0][0].i_ref[0];        const int mvx0 = mb->partition[0][0].mv[0][0];        const int mvy0 = mb->partition[0][0].mv[0][1];        if( mb->i_partition == D_16x16 )        {            h->mc[MC_LUMA]( ctx->p_fref0[i_ref0][0], ctx->i_fref0[i_ref0][0],                            ctx->p_fdec[0],          ctx->i_fdec[0],                            mvx0, mvy0, 16, 16 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][1], ctx->i_fref0[i_ref0][1],                              ctx->p_fdec[1],          ctx->i_fdec[1],                              mvx0, mvy0, 8, 8 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][2], ctx->i_fref0[i_ref0][2],                              ctx->p_fdec[2],          ctx->i_fdec[2],                              mvx0, mvy0, 8, 8 );        }        else if( mb->i_partition == D_16x8 )        {            const int i_ref1 = mb->partition[0][2].i_ref[0];            const int mvx1 = mb->partition[0][2].mv[0][0];            const int mvy1 = mb->partition[0][2].mv[0][1];            h->mc[MC_LUMA]( ctx->p_fref0[i_ref0][0], ctx->i_fref0[i_ref0][0],                            ctx->p_fdec[0],          ctx->i_fdec[0],                            mvx0, mvy0, 16, 8 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][1], ctx->i_fref0[i_ref0][1],                              ctx->p_fdec[1],          ctx->i_fdec[1],                              mvx0, mvy0, 8, 4 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][2], ctx->i_fref0[i_ref0][2],                              ctx->p_fdec[2],          ctx->i_fdec[2],                              mvx0, mvy0, 8, 4 );            h->mc[MC_LUMA]( &ctx->p_fref0[i_ref1][0][8*ctx->i_fref0[i_ref1][0]], ctx->i_fref0[i_ref1][0],                            &ctx->p_fdec[0][8*ctx->i_fdec[0]],                   ctx->i_fdec[0],                            mvx1, mvy1, 16, 8 );            h->mc[MC_CHROMA]( &ctx->p_fref0[i_ref1][1][4*ctx->i_fref0[i_ref1][1]], ctx->i_fref0[i_ref1][1],                              &ctx->p_fdec[1][4*ctx->i_fdec[1]],                   ctx->i_fdec[1],                              mvx1, mvy1, 8, 4 );            h->mc[MC_CHROMA]( &ctx->p_fref0[i_ref1][2][4*ctx->i_fref0[i_ref1][2]], ctx->i_fref0[i_ref1][2],                              &ctx->p_fdec[2][4*ctx->i_fdec[2]],                   ctx->i_fdec[2],                              mvx1, mvy1, 8, 4 );        }        else if( mb->i_partition == D_8x16 )        {            const int i_ref1 = mb->partition[2][0].i_ref[0];            const int mvx1 = mb->partition[2][0].mv[0][0];            const int mvy1 = mb->partition[2][0].mv[0][1];            h->mc[MC_LUMA]( ctx->p_fref0[i_ref0][0], ctx->i_fref0[i_ref0][0],                            ctx->p_fdec[0],          ctx->i_fdec[0],                            mvx0, mvy0, 8, 16 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][1], ctx->i_fref0[i_ref0][1],                              ctx->p_fdec[1],          ctx->i_fdec[1],                              mvx0, mvy0, 4, 8 );            h->mc[MC_CHROMA]( ctx->p_fref0[i_ref0][2], ctx->i_fref0[i_ref0][2],                              ctx->p_fdec[2],          ctx->i_fdec[2],                              mvx0, mvy0, 4, 8 );            h->mc[MC_LUMA]( &ctx->p_fref0[i_ref1][0][8], ctx->i_fref0[i_ref1][0],                            &ctx->p_fdec[0][8],          ctx->i_fdec[0],                            mvx1, mvy1, 8, 16 );            h->mc[MC_CHROMA]( &ctx->p_fref0[i_ref1][1][4], ctx->i_fref0[i_ref1][1],                              &ctx->p_fdec[1][4],          ctx->i_fdec[1],                              mvx1, mvy1, 4, 8 );            h->mc[MC_CHROMA]( &ctx->p_fref0[i_ref1][2][4], ctx->i_fref0[i_ref1][2],                              &ctx->p_fdec[2][4],          ctx->i_fdec[2],                              mvx1, mvy1, 4, 8 );        }    }    else if( mb->i_type == P_8x8 )    {        int i_part;        int i_sub;        for( i_part = 0; i_part < 4; i_part++ )        {            for( i_sub = 0; i_sub < x264_mb_partition_count_table[mb->i_sub_partition[i_part]]; i_sub++ )            {                x264_mb_mc_partition_lx( h, mb, 0, i_part, i_sub );            }        }    }    else if( mb->i_type == B_8x8 || mb->i_type == B_DIRECT )    {        fprintf( stderr, "mc_luma with unsupported mb\n" );        return;    }    else    /* B_*x* */    {        int b_list0[2];        int b_list1[2];        int i;        /* init ref list utilisations */        for( i = 0; i < 2; i++ )        {            b_list0[i] = x264_mb_type_list0_table[mb->i_type][i];            b_list1[i] = x264_mb_type_list1_table[mb->i_type][i];        }        for( i = 0; i < x264_mb_partition_count_table[mb->i_partition]; i++ )        {            if( b_list0[i] && b_list1[i] )            {                x264_mb_mc_partition_bi( h, mb, i, 0 );            }            else if( b_list0[i] )            {                x264_mb_mc_partition_lx( h, mb, 0, i, 0 );            }            else if( b_list1[i] )            {                x264_mb_mc_partition_lx( h, mb, 1, i, 0 );            }        }    }}/***************************************************************************** * x264_macroblock_neighbour_load: *****************************************************************************/void x264_macroblock_context_load( x264_t *h, x264_macroblock_t *mb, x264_mb_context_t *context ){    int ch;    int i, j;    x264_macroblock_t *a = NULL;    x264_macroblock_t *b = NULL;    mb->context = context;    if( mb->i_neighbour&MB_LEFT )    {        a = mb - 1;    }    context->mba = a;    if( mb->i_neighbour&MB_TOP )    {        b = mb - h->sps->i_mb_width;    }    context->mbb = b;    context->mbc = NULL;    if( mb->i_neighbour&MB_TOPRIGHT )    {        context->mbc = b + 1;    }#define LOAD_PTR( dst, src ) \    context->p_##dst[0] = (src)->plane[0] + 16 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[0] ); \    context->p_##dst[1] = (src)->plane[1] +  8 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[1] ); \    context->p_##dst[2] = (src)->plane[2] +  8 * ( mb->i_mb_x + mb->i_mb_y * (src)->i_stride[2] ); \    context->i_##dst[0] = (src)->i_stride[0]; \    context->i_##dst[1] = (src)->i_stride[1]; \    context->i_##dst[2] = (src)->i_stride[2]    LOAD_PTR( img,  h->picture );    LOAD_PTR( fdec, h->fdec );    for( i = 0; i < h->i_ref0; i++ )    {        LOAD_PTR( fref0[i], h->fref0[i] );    }    for( i = 0; i < h->i_ref1; i++ )    {        LOAD_PTR( fref1[i], h->fref1[i] );    }#undef LOAD_PTR    for( i = 0; i < 4; i++ )    {        /* left */        context->block[block_idx_xy[0][i]].mba = a;        context->block[block_idx_xy[0][i]].bka = a ? &a->block[block_idx_xy[3][i]] : NULL;        /* up */        context->block[block_idx_xy[i][0]].mbb = b;        context->block[block_idx_xy[i][0]].bkb = b ? &b->block[block_idx_xy[i][3]] : NULL;        /* rest */        for( j = 1; j < 4; j++ )        {            context->block[block_idx_xy[j][i]].mba = mb;            context->block[block_idx_xy[j][i]].bka = &mb->block[block_idx_xy[j-1][i]];            context->block[block_idx_xy[i][j]].mbb = mb;            context->block[block_idx_xy[i][j]].bkb = &mb->block[block_idx_xy[i][j-1]];        }    }    for( ch = 0; ch < 2; ch++ )    {        for( i = 0; i < 2; i++ )        {            /* left */            context->block[16+4*ch+block_idx_xy[0][i]].mba = a;            context->block[16+4*ch+block_idx_xy[0][i]].bka = a ? &a->block[16+4*ch+block_idx_xy[1][i]] : NULL;            /* up */            context->block[16+4*ch+block_idx_xy[i][0]].mbb = b;            context->block[16+4*ch+block_idx_xy[i][0]].bkb = b ? &b->block[16+4*ch+block_idx_xy[i][1]] : NULL;            /* rest */            context->block[16+4*ch+block_idx_xy[1][i]].mba = mb;            context->block[16+4*ch+block_idx_xy[1][i]].bka = &mb->block[16+4*ch+block_idx_xy[0][i]];            context->block[16+4*ch+block_idx_xy[i][1]].mbb = mb;            context->block[16+4*ch+block_idx_xy[i][1]].bkb = &mb->block[16+4*ch+block_idx_xy[i][0]];        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区国产二区欧美三区| 久久久久久久久久久久电影| 国产麻豆精品95视频| 亚洲精品国产视频| 久久综合精品国产一区二区三区 | 久久夜色精品国产欧美乱极品| 成人的网站免费观看| 免费精品99久久国产综合精品| 日韩美女视频一区二区| 久久久www成人免费无遮挡大片| 欧美色图激情小说| 91免费国产在线观看| 激情综合一区二区三区| 亚洲一区二区成人在线观看| 欧美激情在线看| 91麻豆精品国产无毒不卡在线观看| av一本久道久久综合久久鬼色| 久久精品国产网站| 五月激情综合色| 一区二区免费看| 国产精品国产三级国产a| 久久先锋资源网| 日韩一卡二卡三卡国产欧美| 欧美性色欧美a在线播放| 色哟哟一区二区三区| 成人永久看片免费视频天堂| 狠狠色丁香久久婷婷综合_中| 天堂蜜桃91精品| 亚洲高清在线精品| 亚洲国产一二三| 亚洲444eee在线观看| 亚洲午夜一二三区视频| 悠悠色在线精品| 有码一区二区三区| 亚洲综合在线观看视频| 亚洲精选视频免费看| 99久久精品国产一区二区三区| 久久精品国产久精国产| 日本在线不卡一区| 免费国产亚洲视频| 麻豆精品新av中文字幕| 麻豆极品一区二区三区| 韩国三级中文字幕hd久久精品| 蓝色福利精品导航| 黄网站免费久久| 国产剧情一区二区三区| 国产成人一级电影| gogo大胆日本视频一区| 色综合久久综合| 欧美在线短视频| 欧美精品久久一区二区三区| 69成人精品免费视频| 日韩欧美精品三级| 久久在线观看免费| 国产精品久久毛片| 亚洲午夜免费福利视频| 日本免费新一区视频| 国内精品自线一区二区三区视频| 国产美女久久久久| 色综合久久综合| 欧美高清dvd| 亚洲精品在线免费播放| 国产日产欧美一区二区三区| 中文字幕一区二区三区视频| 一区二区成人在线视频| 日韩中文字幕一区二区三区| 久88久久88久久久| 成人高清免费在线播放| 日本高清视频一区二区| 日韩亚洲国产中文字幕欧美| 久久综合久久久久88| 一区在线观看免费| 婷婷综合五月天| 国产一区二区三区四区五区美女| 成人精品一区二区三区四区| 在线观看av一区二区| 精品国产精品网麻豆系列| 久久精品人人做人人爽97| 亚洲精品久久久蜜桃| 日韩成人精品在线观看| 成人午夜私人影院| 欧美午夜视频网站| 国产校园另类小说区| 亚洲综合图片区| 国产伦精品一区二区三区免费| 91在线观看免费视频| 欧美r级在线观看| 一区二区三区在线视频播放 | 午夜伦欧美伦电影理论片| 国产中文字幕一区| 欧美色中文字幕| 国产无遮挡一区二区三区毛片日本| 亚洲欧洲日产国产综合网| 欧美a级一区二区| 色综合久久久久久久| 精品日韩一区二区三区免费视频| 亚洲人成网站精品片在线观看 | 91蝌蚪porny九色| 欧美不卡一区二区三区| 亚洲欧美激情插| 国产麻豆精品视频| 这里只有精品99re| av亚洲精华国产精华| 91精品国产综合久久精品性色| 国产精品天干天干在线综合| 青娱乐精品在线视频| 一本色道久久综合亚洲aⅴ蜜桃| 精品国精品自拍自在线| 亚洲成av人片一区二区| 色噜噜狠狠成人中文综合| 欧美经典三级视频一区二区三区| 日本欧美久久久久免费播放网| 一本大道av伊人久久综合| 欧美国产一区二区| 久久国产成人午夜av影院| 欧美日韩日本视频| 亚洲精品乱码久久久久久久久| 国产成人精品影视| 久久久久久亚洲综合| 麻豆国产精品一区二区三区| 精品视频在线免费看| 一区二区激情小说| 9色porny自拍视频一区二区| 国产日产亚洲精品系列| 国产精品1区2区3区在线观看| 日韩欧美电影一二三| 日韩av电影免费观看高清完整版| 色哟哟国产精品免费观看| 中文字幕综合网| 99re8在线精品视频免费播放| 国产三级精品三级| 国产精品69久久久久水密桃| 久久女同互慰一区二区三区| 黄色资源网久久资源365| 26uuu精品一区二区三区四区在线| 日本视频一区二区| 日韩午夜激情电影| 麻豆免费精品视频| 精品裸体舞一区二区三区| 激情深爱一区二区| 久久久久国产精品人| 国产老妇另类xxxxx| 国产欧美精品区一区二区三区 | 一区二区三区精品视频在线| 91福利小视频| 亚洲午夜在线电影| 91精品国产91久久综合桃花 | 成人免费在线播放视频| 91首页免费视频| 亚洲老妇xxxxxx| 欧美久久久久免费| 麻豆国产一区二区| 欧美国产日韩精品免费观看| 成人一区二区三区视频在线观看| 国产精品人成在线观看免费| 97国产一区二区| 亚洲综合色婷婷| 日韩色视频在线观看| 国产精品亚洲а∨天堂免在线| 中文字幕不卡的av| 91成人在线免费观看| 日韩专区在线视频| 国产亚洲成年网址在线观看| 成人h动漫精品一区二区| 亚洲男人的天堂一区二区| 欧美日韩一区视频| 国产一区二区在线电影| 国产精品福利影院| 欧美亚一区二区| 麻豆精品一区二区综合av| 国产日韩欧美电影| 欧美在线免费视屏| 国内精品视频一区二区三区八戒 | 亚洲福利视频三区| 五月婷婷欧美视频| 精品国产乱码久久久久久牛牛| 国产福利一区二区三区视频在线 | 精品日本一线二线三线不卡| 成人av中文字幕| 五月天激情综合| 国产精品美女久久久久久久久 | 亚洲一区二区三区激情| 欧美www视频| 色爱区综合激月婷婷| 国产在线精品一区二区不卡了| 中文字幕一区二区三区蜜月| 欧美一区二区啪啪| 97精品国产露脸对白| 久久国产精品露脸对白| 亚洲综合在线电影| 国产欧美一区二区在线观看| 欧美精品久久久久久久多人混战 | 日韩一区二区三区高清免费看看| 成人一区二区三区| 日韩电影一区二区三区四区| 国产精品午夜在线观看| 欧美成人一区二区三区| 日本韩国一区二区| 成人一区二区在线观看| 久久精品国产精品青草|