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

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

?? macroblock.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
    if( i_prefix < 9 )    {        x264_cabac_encode_decision( &h->cabac, i_ctx + i_ctx_inc, 0 );    }    if( i_prefix >= 9 )    {        int k = 3;        int i_suffix = i_abs - 9;        while( i_suffix >= (1<<k) )        {            x264_cabac_encode_bypass( &h->cabac, 1 );            i_suffix -= 1 << k;            k++;        }        x264_cabac_encode_bypass( &h->cabac, 0 );        while( k-- )        {            x264_cabac_encode_bypass( &h->cabac, (i_suffix >> k)&0x01 );        }    }    /* sign */    if( mvd > 0 )    {        x264_cabac_encode_bypass( &h->cabac, 0 );    }    else if( mvd < 0 )    {        x264_cabac_encode_bypass( &h->cabac, 1 );    }}static void  x264_cabac_mb_mv( x264_t *h, x264_macroblock_t *mb, int i_list, int i_part, int i_sub ){    x264_macroblock_t *mbn;    int mvd[2];    int x, y, xn, yn;    int i_ctxIdxInc;    int i_absmv0 = 0;    int i_absmv1 = 0;    /* get and update mvd */    x264_mb_partition_mvd( mb, i_list, i_part, i_sub, mvd );    /* get context */    x264_mb_partition_getxy( mb, i_part, i_sub, &x, &y );    /* FIXME not complete for B frame (B_DIRECT and B_DIRECT 8x8 sub */    /* Left  pixel (-1,0)*/    xn = x - 1;    mbn = mb;    if( xn < 0 )    {        xn += 4;        mbn = mb->context->mba;    }    if( mbn && !IS_INTRA( mbn->i_type ) && !IS_SKIP( mbn->i_type) )    {        i_absmv0 += abs( mbn->partition[xn][y].mvd[i_list][0] );        i_absmv1 += abs( mbn->partition[xn][y].mvd[i_list][1] );    }    /* Up ( pixel(0,-1)*/    yn = y - 1;    mbn = mb;    if( yn < 0 )    {        yn += 4;        mbn = mb->context->mbb;    }    if( mbn && !IS_INTRA( mbn->i_type ) && !IS_SKIP( mbn->i_type) )    {        i_absmv0 += abs( mbn->partition[x][yn].mvd[i_list][0] );        i_absmv1 += abs( mbn->partition[x][yn].mvd[i_list][1] );    }    /* x component */    if( i_absmv0 < 3 )    {        i_ctxIdxInc = 0;    }    else if( i_absmv0 > 32 )    {        i_ctxIdxInc = 2;    }    else    {        i_ctxIdxInc = 1;    }    x264_cabac_mb_mvd( h, 40, i_ctxIdxInc, mvd[0] );    /* y component */    if( i_absmv1 < 3 )    {        i_ctxIdxInc = 0;    }    else if( i_absmv1 > 32 )    {        i_ctxIdxInc = 2;    }    else    {        i_ctxIdxInc = 1;    }    x264_cabac_mb_mvd( h, 47, i_ctxIdxInc, mvd[1] );}static void x264_cabac_mb_sub_partition( x264_t *h, int i_sub ){    switch( i_sub )    {        case D_L0_8x8:            x264_cabac_encode_decision( &h->cabac, 21, 1 );            break;        case D_L0_8x4:            x264_cabac_encode_decision( &h->cabac, 21, 0 );            x264_cabac_encode_decision( &h->cabac, 22, 0 );            break;        case D_L0_4x8:            x264_cabac_encode_decision( &h->cabac, 21, 0 );            x264_cabac_encode_decision( &h->cabac, 22, 1 );            x264_cabac_encode_decision( &h->cabac, 23, 1 );            break;        case D_L0_4x4:            x264_cabac_encode_decision( &h->cabac, 21, 0 );            x264_cabac_encode_decision( &h->cabac, 22, 1 );            x264_cabac_encode_decision( &h->cabac, 23, 0 );            break;    }}static void block_residual_write_cabac( x264_t *h, x264_macroblock_t *mb, int i_ctxBlockCat, int i_idx, int *l, int i_count ){    static const int significant_coeff_flag_offset[5] = { 0, 15, 29, 44, 47 };    static const int last_significant_coeff_flag_offset[5] = { 0, 15, 29, 44, 47 };    static const int coeff_abs_level_m1_offset[5] = { 0, 10, 20, 30, 39 };    int i_coeff_abs_m1[16];    int i_coeff_sign[16];    int i_coeff = 0;    int i_last  = 0;    int i_abslevel1 = 0;    int i_abslevelgt1 = 0;    int i;    /* i_ctxBlockCat: 0-> DC 16x16  i_idx = 0     *                1-> AC 16x16  i_idx = luma4x4idx     *                2-> Luma4x4   i_idx = luma4x4idx     *                3-> DC Chroma i_idx = iCbCr     *                4-> AC Chroma i_idx = 4 * iCbCr + chroma4x4idx     */    //fprintf( stderr, "l[] = " );    for( i = 0; i < i_count; i++ )    {        //fprintf( stderr, "%d ", l[i] );        if( l[i] != 0 )        {            i_coeff_abs_m1[i_coeff] = abs( l[i] ) - 1;            i_coeff_sign[i_coeff]   = ( l[i] < 0 ? 1 : 0);            i_coeff++;            i_last = i;        }    }    //fprintf( stderr, "\n" );    if( i_coeff == 0 )    {        /* codec block flag */        x264_cabac_encode_decision( &h->cabac,  85 + x264_cabac_mb_cbf_ctxidxinc( mb, i_ctxBlockCat, i_idx ), 0 );        return;    }    /* block coded */    x264_cabac_encode_decision( &h->cabac,  85 + x264_cabac_mb_cbf_ctxidxinc( mb, i_ctxBlockCat, i_idx ), 1 );    for( i = 0; i < i_count - 1; i++ )    {        int i_ctxIdxInc;        i_ctxIdxInc = X264_MIN( i, i_count - 2 );        if( l[i] != 0 )        {            x264_cabac_encode_decision( &h->cabac, 105 + significant_coeff_flag_offset[i_ctxBlockCat] + i_ctxIdxInc, 1 );            x264_cabac_encode_decision( &h->cabac, 166 + last_significant_coeff_flag_offset[i_ctxBlockCat] + i_ctxIdxInc, i == i_last ? 1 : 0 );        }        else        {            x264_cabac_encode_decision( &h->cabac, 105 + significant_coeff_flag_offset[i_ctxBlockCat] + i_ctxIdxInc, 0 );        }        if( i == i_last )        {            break;        }    }    for( i = i_coeff - 1; i >= 0; i-- )    {        int i_prefix;        int i_ctxIdxInc;        /* write coeff_abs - 1 */        /* prefix */        i_prefix = X264_MIN( i_coeff_abs_m1[i], 14 );        i_ctxIdxInc = (i_abslevelgt1 != 0 ? 0 : X264_MIN( 4, i_abslevel1 + 1 )) + coeff_abs_level_m1_offset[i_ctxBlockCat];        if( i_prefix == 0 )        {            x264_cabac_encode_decision( &h->cabac,  227 + i_ctxIdxInc, 0 );        }        else        {            int j;            x264_cabac_encode_decision( &h->cabac,  227 + i_ctxIdxInc, 1 );            i_ctxIdxInc = 5 + X264_MIN( 4, i_abslevelgt1 ) + coeff_abs_level_m1_offset[i_ctxBlockCat];            for( j = 0; j < i_prefix - 1; j++ )            {                x264_cabac_encode_decision( &h->cabac,  227 + i_ctxIdxInc, 1 );            }            if( i_prefix < 14 )            {                x264_cabac_encode_decision( &h->cabac,  227 + i_ctxIdxInc, 0 );            }        }        /* suffix */        if( i_coeff_abs_m1[i] >= 14 )        {            int k = 0;            int i_suffix = i_coeff_abs_m1[i] - 14;            while( i_suffix >= (1<<k) )            {                x264_cabac_encode_bypass( &h->cabac, 1 );                i_suffix -= 1 << k;                k++;            }            x264_cabac_encode_bypass( &h->cabac, 0 );            while( k-- )            {                x264_cabac_encode_bypass( &h->cabac, (i_suffix >> k)&0x01 );            }        }        /* write sign */        x264_cabac_encode_bypass( &h->cabac, i_coeff_sign[i] );        if( i_coeff_abs_m1[i] == 0 )        {            i_abslevel1++;        }        else        {            i_abslevelgt1++;        }    }}void x264_macroblock_write_cabac( x264_t *h, bs_t *s, x264_macroblock_t *mb ){    int i;    /* Write the MB type */#if 0    fprintf( stderr, "[%d,%d] type=%d cbp=%d predc=%d\n",             mb->i_mb_x, mb->i_mb_y,             1 + mb->i_intra16x16_pred_mode + mb->i_cbp_chroma * 4 + ( mb->i_cbp_luma == 0 ? 0 : 12 ),             (mb->i_cbp_chroma << 4)|mb->i_cbp_luma,             mb->i_chroma_pred_mode );#endif    x264_cabac_mb_type( h, mb );    /* PCM special block type UNTESTED */    if( mb->i_type == I_PCM )    {        bs_align_0( s );    /* not sure */        /* Luma */        for( i = 0; i < 16*16; i++ )        {            bs_write( s, 8, h->picture->plane[0][mb->i_mb_y * 16 * h->picture->i_stride[0] + mb->i_mb_x * 16+i] );        }        /* Cb */        for( i = 0; i < 8*8; i++ )        {            bs_write( s, 8, h->picture->plane[1][mb->i_mb_y * 8 * h->picture->i_stride[1] + mb->i_mb_x * 8+i] );        }        /* Cr */        for( i = 0; i < 8*8; i++ )        {            bs_write( s, 8, h->picture->plane[2][mb->i_mb_y * 8 * h->picture->i_stride[2] + mb->i_mb_x * 8+i] );        }        for( i = 0; i < 16 + 8; i++ )        {            /* special case */            mb->block[i].i_non_zero_count = 16;        }        x264_cabac_encode_init( &h->cabac, s );        return;    }    if( IS_INTRA( mb->i_type ) )    {        /* Prediction */        if( mb->i_type == I_4x4 )        {            for( i = 0; i < 16; i++ )            {                x264_cabac_mb_intra4x4_pred_mode( h, mb,                                                  x264_mb_predict_intra4x4_mode( h, mb, i ),                                                  mb->block[i].i_intra4x4_pred_mode );            }        }        x264_cabac_mb_intra8x8_pred_mode( h, mb );    }    else if( mb->i_type == P_8x8 )    {        /* sub mb type */        for( i = 0; i < 4; i++ )        {            x264_cabac_mb_sub_partition( h, mb->i_sub_partition[i] );        }        /* ref 0 */        if( h->sh.i_num_ref_idx_l0_active > 1 )        {            for( i = 0; i < 4; i++ )            {                x264_cabac_mb_ref( h, mb, 0, i );            }        }        for( i = 0; i < 4; i++ )        {            int i_sub;            for( i_sub = 0; i_sub < x264_mb_partition_count_table[mb->i_sub_partition[i]]; i_sub++ )            {                x264_cabac_mb_mv( h, mb, 0, i, i_sub );            }        }    }    else if( mb->i_type == B_8x8 )    {        /* TODO */        fprintf( stderr, "Arggg B_8x8\n" );    }    else if( mb->i_type != B_DIRECT )    {        /* FIXME -> invalid for B frame */        /* Motion Vector */        int i_part = x264_mb_partition_count_table[mb->i_partition];        if( h->sh.i_num_ref_idx_l0_active > 1 )        {            for( i = 0; i < i_part; i++ )            {                if( mb->i_type == P_L0 )                {                    x264_cabac_mb_ref( h, mb, 0, i );                }            }        }        for( i = 0; i < i_part; i++ )        {            if( mb->i_type == P_L0 )            {                x264_cabac_mb_mv( h, mb, 0, i, 0 );            }        }    }    if( mb->i_type != I_16x16 )    {        x264_cabac_mb_cbp_luma( h, mb );        x264_cabac_mb_cbp_chroma( h, mb );    }    if( mb->i_cbp_luma > 0 || mb->i_cbp_chroma > 0 || mb->i_type == I_16x16 )    {        x264_cabac_mb_qp_delta( h, mb );        /* write residual */        if( mb->i_type == I_16x16 )        {            /* DC Luma */            block_residual_write_cabac( h, mb, 0, 0, mb->luma16x16_dc, 16 );            if( mb->i_cbp_luma != 0 )            {                /* AC Luma */                for( i = 0; i < 16; i++ )                {                    block_residual_write_cabac( h, mb, 1, i, mb->block[i].residual_ac, 15 );                }            }        }        else        {            for( i = 0; i < 16; i++ )            {                if( mb->i_cbp_luma & ( 1 << ( i / 4 ) ) )                {                    block_residual_write_cabac( h, mb, 2, i, mb->block[i].luma4x4, 16 );                }            }        }        if( mb->i_cbp_chroma &0x03 )    /* Chroma DC residual present */        {            block_residual_write_cabac( h, mb, 3, 0, mb->chroma_dc[0], 4 );            block_residual_write_cabac( h, mb, 3, 1, mb->chroma_dc[1], 4 );        }        if( mb->i_cbp_chroma&0x02 ) /* Chroma AC residual present */        {            for( i = 0; i < 8; i++ )            {                block_residual_write_cabac( h, mb, 4, i, mb->block[16+i].residual_ac, 15 );            }        }    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
秋霞av亚洲一区二区三| 中文乱码免费一区二区| 视频一区视频二区中文| 欧美日韩国产bt| 奇米综合一区二区三区精品视频| 欧美福利视频导航| 麻豆精品国产传媒mv男同| 精品国内二区三区| 国产九色sp调教91| 中文字幕日韩一区| 欧美日本韩国一区二区三区视频| 美美哒免费高清在线观看视频一区二区 | 国产成人av电影| 综合亚洲深深色噜噜狠狠网站| 91视频免费观看| 日本美女一区二区| 国产女主播一区| 欧美色精品天天在线观看视频| 日本免费在线视频不卡一不卡二| 日韩三区在线观看| 北条麻妃一区二区三区| 亚洲国产精品一区二区久久| 日韩限制级电影在线观看| 国产精品一区二区三区乱码 | 亚洲综合一二三区| 亚洲一区二区欧美激情| 日韩欧美在线网站| 色综合久久精品| 久久99久久久欧美国产| 亚洲色欲色欲www| 亚洲精品一区二区三区四区高清| av在线不卡免费看| 免费不卡在线观看| 亚洲乱码国产乱码精品精可以看 | 亚洲成人在线观看视频| 久久精品在这里| 欧美日高清视频| 99久久精品国产观看| 精品一区二区三区久久久| 亚洲黄色免费网站| 亚洲国产精品av| 日韩一区二区电影在线| 欧美在线一二三| 99久久综合国产精品| 狠狠狠色丁香婷婷综合激情 | 国产成人精品aa毛片| 午夜精品福利一区二区三区av| 中文字幕精品一区二区精品绿巨人| 欧美区在线观看| 色琪琪一区二区三区亚洲区| 国产高清精品网站| 久久av老司机精品网站导航| 亚洲午夜一区二区| 亚洲欧美偷拍卡通变态| 国产午夜精品一区二区| 日韩精品专区在线影院观看| 欧美系列一区二区| 一本到高清视频免费精品| 成人激情小说网站| 国产 日韩 欧美大片| 国内精品写真在线观看 | 国产麻豆91精品| 日韩精品电影一区亚洲| 亚洲图片自拍偷拍| 一区二区在线观看视频在线观看| 国产精品水嫩水嫩| 中文字幕国产精品一区二区| 国产欧美va欧美不卡在线 | 国产精品美女www爽爽爽| 久久综合丝袜日本网| 日韩欧美三级在线| 日韩美女视频一区二区在线观看| 91精品在线一区二区| 一区二区三区国产豹纹内裤在线| 亚洲欧美福利一区二区| 玉足女爽爽91| 亚洲一二三级电影| 午夜视频在线观看一区| 亚洲成人动漫一区| 日本va欧美va欧美va精品| 日本午夜一本久久久综合| 久久99蜜桃精品| 国产精品系列在线播放| 成人教育av在线| 91论坛在线播放| 欧美女孩性生活视频| 91精品国产免费久久综合| 日韩精品中文字幕在线一区| 久久久综合网站| 国产日韩av一区| 亚洲免费观看高清完整版在线观看| 亚洲免费在线观看| 亚洲国产日日夜夜| 久久99精品国产麻豆不卡| 久久99精品一区二区三区三区| 国产麻豆一精品一av一免费| 成人午夜电影久久影院| 在线国产电影不卡| 日韩一区和二区| 欧美激情一区二区| 亚洲乱码中文字幕综合| 日韩中文字幕不卡| 国产成人亚洲综合色影视| 色综合 综合色| 91精品欧美久久久久久动漫 | 欧美国产精品一区| 亚洲精品日日夜夜| 麻豆91在线播放| 成人av资源站| 欧美美女视频在线观看| 久久伊99综合婷婷久久伊| 日韩久久一区二区| 日韩精品色哟哟| 成人精品一区二区三区中文字幕| 日本道精品一区二区三区| 精品福利一区二区三区| 亚洲视频在线观看三级| 久久精品理论片| 一道本成人在线| 欧美xxxxxxxxx| 亚洲精品精品亚洲| 国产一区二区三区av电影| 91黄色激情网站| 久久久www免费人成精品| 亚洲一区二区三区中文字幕在线| 精品在线一区二区| 欧美熟乱第一页| 中文字幕在线观看不卡| 美腿丝袜在线亚洲一区| 91色综合久久久久婷婷| 欧美精品一区二区三区四区| 亚洲综合一区二区精品导航| 成人国产电影网| 精品国内二区三区| 五月天久久比比资源色| jizzjizzjizz欧美| 日韩欧美综合一区| 五月天欧美精品| 欧美日韩精品系列| 亚洲四区在线观看| 成人黄色在线看| 国产午夜精品一区二区三区嫩草 | 精品综合免费视频观看| 欧美午夜宅男影院| 亚洲欧美电影院| www.日韩在线| 国产欧美精品区一区二区三区| 免费不卡在线视频| 欧美一级午夜免费电影| 亚洲国产精品视频| 在线观看国产日韩| 夜夜揉揉日日人人青青一国产精品| 成人美女视频在线观看18| 精品国产免费人成在线观看| 亚洲成人自拍偷拍| 欧美亚洲国产一区二区三区va| 亚洲欧洲日韩一区二区三区| 国产高清不卡一区二区| 国产色综合一区| 国产一区二区三区久久悠悠色av| 欧美一级久久久久久久大片| 日韩高清电影一区| 欧美一区二区三区免费大片 | 激情五月激情综合网| 日韩精品专区在线| 国内不卡的二区三区中文字幕| 欧美变态tickle挠乳网站| 久久精品国产一区二区| 欧美变态口味重另类| 国产老女人精品毛片久久| 久久久不卡网国产精品一区| 成人精品免费看| 一区免费观看视频| 日本福利一区二区| 亚洲www啪成人一区二区麻豆| 欧美日韩国产天堂| 久久精品国产999大香线蕉| 精品国产欧美一区二区| 国产成人在线视频网址| 国产精品超碰97尤物18| 91视频xxxx| 天天色天天操综合| 精品久久一区二区| 国产成都精品91一区二区三| 国产精品久久久久国产精品日日| 99久久精品国产一区二区三区| 夜夜精品视频一区二区| 日韩视频一区二区三区| 国产一区欧美一区| 亚洲同性同志一二三专区| 欧美日本国产一区| 国产激情一区二区三区桃花岛亚洲| 国产午夜精品久久久久久免费视| 99精品久久久久久| 五月婷婷激情综合| 欧美激情资源网| 欧美日本国产一区| 国产·精品毛片| 亚洲va欧美va人人爽| 久久色.com|