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

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

?? macroblock.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 5 頁
字號:
        default:            fprintf( stderr, "internal error or slice unsupported\n" );            return;    }    /* Write:      - type      - prediction      - mv */    if( mb->i_type == I_PCM )    {        /* Untested */        bs_write_ue( s, i_mb_i_offset + 25 );        bs_align_0( s );        /* 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;        }        return;    }    else if( mb->i_type == I_4x4 )    {        bs_write_ue( s, i_mb_i_offset + 0 );        /* Prediction: Luma */        for( i = 0; i < 16; i++ )        {            int i_predicted_mode = x264_mb_predict_intra4x4_mode( h, mb, i );            int i_mode = mb->block[i].i_intra4x4_pred_mode;            if( i_predicted_mode == i_mode)            {                bs_write1( s, 1 );  /* b_prev_intra4x4_pred_mode */            }            else            {                bs_write1( s, 0 );  /* b_prev_intra4x4_pred_mode */                if( i_mode < i_predicted_mode )                {                    bs_write( s, 3, i_mode );                }                else                {                    bs_write( s, 3, i_mode - 1 );                }            }        }        /* Prediction: chroma */        bs_write_ue( s, mb->i_chroma_pred_mode );    }    else if( mb->i_type == I_16x16 )    {        bs_write_ue( s, i_mb_i_offset + 1 + mb->i_intra16x16_pred_mode +                                            mb->i_cbp_chroma * 4 +                                            ( mb->i_cbp_luma == 0 ? 0 : 12 ) );        /* Prediction: chroma */        bs_write_ue( s, mb->i_chroma_pred_mode );    }    else if( mb->i_type == P_L0 )    {        int mvp[2];        if( mb->i_partition == D_16x16 )        {            bs_write_ue( s, 0 );            if( h->sh.i_num_ref_idx_l0_active > 1 )            {                bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][0].i_ref[0] );            }            x264_mb_predict_mv( mb, 0, 0, 0, mvp );            bs_write_se( s, mb->partition[0][0].mv[0][0] - mvp[0] );            bs_write_se( s, mb->partition[0][0].mv[0][1] - mvp[1] );        }        else if( mb->i_partition == D_16x8 )        {            bs_write_ue( s, 1 );            if( h->sh.i_num_ref_idx_l0_active > 1 )            {                bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][0].i_ref[0] );                bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][2].i_ref[0] );            }            x264_mb_predict_mv( mb, 0, 0, 0, mvp );            bs_write_se( s, mb->partition[0][0].mv[0][0] - mvp[0] );            bs_write_se( s, mb->partition[0][0].mv[0][1] - mvp[1] );            x264_mb_predict_mv( mb, 0, 1, 0, mvp );            bs_write_se( s, mb->partition[0][2].mv[0][0] - mvp[0] );            bs_write_se( s, mb->partition[0][2].mv[0][1] - mvp[1] );        }        else if( mb->i_partition == D_8x16 )        {            bs_write_ue( s, 2 );            if( h->sh.i_num_ref_idx_l0_active > 1 )            {                bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][0].i_ref[0] );                bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[2][0].i_ref[0] );            }            x264_mb_predict_mv( mb, 0, 0, 0, mvp );            bs_write_se( s, mb->partition[0][0].mv[0][0] - mvp[0] );            bs_write_se( s, mb->partition[0][0].mv[0][1] - mvp[1] );            x264_mb_predict_mv( mb, 0, 1, 0, mvp );            bs_write_se( s, mb->partition[2][0].mv[0][0] - mvp[0] );            bs_write_se( s, mb->partition[2][0].mv[0][1] - mvp[1] );        }    }    else if( mb->i_type == P_8x8 )    {        int b_sub_ref0;        if( mb->partition[0][0].i_ref[0] == 0 &&            mb->partition[0][2].i_ref[0] == 0 &&            mb->partition[2][0].i_ref[0] == 0 &&            mb->partition[2][2].i_ref[0] == 0 )        {            bs_write_ue( s, 4 );            b_sub_ref0 = 0;        }        else        {            bs_write_ue( s, 3 );            b_sub_ref0 = 1;        }        /* sub mb type */        for( i = 0; i < 4; i++ )        {            switch( mb->i_sub_partition[i] )            {                case D_L0_8x8:                    bs_write_ue( s, 0 );                    break;                case D_L0_8x4:                    bs_write_ue( s, 1 );                    break;                case D_L0_4x8:                    bs_write_ue( s, 2 );                    break;                case D_L0_4x4:                    bs_write_ue( s, 3 );                    break;            }        }        /* ref0 */        if( h->sh.i_num_ref_idx_l0_active > 1 && b_sub_ref0 )        {            bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][0].i_ref[0] );            bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[2][0].i_ref[0] );            bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[0][2].i_ref[0] );            bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, mb->partition[2][2].i_ref[0] );        }        for( i = 0; i < 4; i++ )        {            int i_part;            for( i_part = 0; i_part < x264_mb_partition_count_table[mb->i_sub_partition[i]]; i_part++ )            {                int mvx, mvy;                int mvp[2];                x264_mb_partition_get( mb, 0, i, i_part, NULL, &mvx, &mvy );                x264_mb_predict_mv( mb, 0, i, i_part, mvp );                bs_write_se( s, mvx - mvp[0] );                bs_write_se( s, mvy - mvp[1]);            }        }    }    else if( mb->i_type == B_8x8 )    {        fprintf( stderr, "invalid/unhandled mb_type (B_8x8)\n" );        return;    }    else if( mb->i_type != B_DIRECT )    {        /* All B mode */        /* Motion Vector */        int i_part = x264_mb_partition_count_table[mb->i_partition];        int i_ref;        int mvx, mvy;        int mvp[2];        int b_list0[2];        int b_list1[2];        /* 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];        }        if( mb->i_partition == D_16x16 )        {            if( b_list0[0] && b_list1[0] )            {                bs_write_ue( s, 3 );            }            else if( b_list1[0] )            {                bs_write_ue( s, 2 );            }            else            {                bs_write_ue( s, 1 );            }        }        else        {            if( mb->i_type == B_BI_BI )            {                bs_write_ue( s, 20 + (mb->i_partition == D_16x8 ? 0 : 1 ) );            }            else if( b_list0[0] && b_list1[0] )            {                /* B_BI_LX* */                bs_write_ue( s, 16 + (b_list0[1]?0:2) + (mb->i_partition == D_16x8?0:1) );            }            else if( b_list0[1] && b_list1[1] )            {                /* B_LX_BI */                bs_write_ue( s, 12 + (b_list0[1]?0:2) + (mb->i_partition == D_16x8?0:1) );            }            else if( b_list1[1] )            {                /* B_LX_L1 */                bs_write_ue( s, 6 + (b_list0[0]?2:0) + (mb->i_partition == D_16x8?0:1) );            }            else if( b_list0[1] )            {                /* B_LX_L0 */                bs_write_ue( s, 4 + (b_list0[0]?0:6) + (mb->i_partition == D_16x8?0:1) );            }        }        if( h->sh.i_num_ref_idx_l0_active > 1 )        {            for( i = 0; i < i_part; i++ )            {                if( b_list0[i] )                {                    x264_mb_partition_get( mb, 0, i, 0, &i_ref, NULL, NULL );                    bs_write_te( s, h->sh.i_num_ref_idx_l0_active - 1, i_ref );                }            }        }        if( h->sh.i_num_ref_idx_l1_active > 1 )        {            for( i = 0; i < i_part; i++ )            {                if( b_list1[i] )                {                    x264_mb_partition_get( mb, 1, i, 0, &i_ref, NULL, NULL );                    bs_write_te( s, h->sh.i_num_ref_idx_l1_active - 1, i_ref );                }            }        }        for( i = 0; i < i_part; i++ )        {            if( b_list0[i] )            {                x264_mb_partition_get( mb, 0, i, 0, NULL, &mvx, &mvy );                x264_mb_predict_mv( mb, 0, i, 0, mvp );                bs_write_se( s, mvx - mvp[0] );                bs_write_se( s, mvy - mvp[1] );            }        }        for( i = 0; i < i_part; i++ )        {            if( b_list1[i] )            {                x264_mb_partition_get( mb, 1, i, 0, NULL, &mvx, &mvy );                x264_mb_predict_mv( mb, 1, i, 0, mvp );                bs_write_se( s, mvx - mvp[0] );                bs_write_se( s, mvy - mvp[1] );            }        }    }    else if( mb->i_type == B_DIRECT )    {        bs_write_ue( s, 0 );    }    else    {        fprintf( stderr, "invalid/unhandled mb_type\n" );        return;    }    /* Coded block patern */    if( mb->i_type == I_4x4 )    {        bs_write_ue( s, intra4x4_cbp_to_golomb[( mb->i_cbp_chroma << 4 )|mb->i_cbp_luma] );    }    else if( mb->i_type != I_16x16 )    {        bs_write_ue( s, inter_cbp_to_golomb[( mb->i_cbp_chroma << 4 )|mb->i_cbp_luma] );    }    /* write residual */    if( mb->i_type == I_16x16 )    {        if( mb->i_mb_x > 0 || mb->i_mb_y > 0 )            bs_write_se( s, mb->i_qp - (mb-1)->i_qp);        else            bs_write_se( s, mb->i_qp - h->pps->i_pic_init_qp - h->sh.i_qp_delta );        /* DC Luma */        block_residual_write_cavlc( h, s, mb, BLOCK_INDEX_LUMA_DC , mb->luma16x16_dc, 16 );        if( mb->i_cbp_luma != 0 )        {            /* AC Luma */            for( i = 0; i < 16; i++ )            {                block_residual_write_cavlc( h, s, mb, i, mb->block[i].residual_ac, 15 );            }        }    }    else if( mb->i_cbp_luma != 0 || mb->i_cbp_chroma != 0 )    {        bs_write_se( s, mb->i_qp - h->pps->i_pic_init_qp - h->sh.i_qp_delta );        for( i = 0; i < 16; i++ )        {            if( mb->i_cbp_luma & ( 1 << ( i / 4 ) ) )            {                block_residual_write_cavlc( h, s, mb, i, mb->block[i].luma4x4, 16 );            }        }    }    if( mb->i_cbp_chroma != 0 )    {        /* Chroma DC residual present */        block_residual_write_cavlc( h, s, mb, BLOCK_INDEX_CHROMA_DC, mb->chroma_dc[0], 4 );        block_residual_write_cavlc( h, s, mb, BLOCK_INDEX_CHROMA_DC, mb->chroma_dc[1], 4 );        if( mb->i_cbp_chroma&0x02 ) /* Chroma AC residual present */        {            for( i = 0; i < 8; i++ )            {                block_residual_write_cavlc( h, s, mb, 16 + i, mb->block[16+i].residual_ac, 15 );            }        }    }}/***************************************************************************** * * Cabac stuff * *****************************************************************************/static void x264_cabac_mb_type( x264_t *h, x264_macroblock_t *mb ){    x264_macroblock_t *mba = mb->context->mba;    x264_macroblock_t *mbb = mb->context->mbb;    int i_ctxIdxInc    = 0;    if( h->sh.i_type == SLICE_TYPE_I )    {        if( mba != NULL && mba->i_type != I_4x4 )        {            i_ctxIdxInc++;        }        if( mbb != NULL && mbb->i_type != I_4x4 )        {            i_ctxIdxInc++;        }        if( mb->i_type == I_4x4 )        {            x264_cabac_encode_decision( &h->cabac, 3 + i_ctxIdxInc, 0 );        }        else if( mb->i_type == I_PCM )        {            x264_cabac_encode_decision( &h->cabac, 3 + i_ctxIdxInc, 1 );            x264_cabac_encode_terminal( &h->cabac, 1 ); /*ctxIdx == 276 */        }        else    /* I_16x16 */        {            x264_cabac_encode_decision( &h->cabac, 3 + i_ctxIdxInc, 1 );            x264_cabac_encode_terminal( &h->cabac, 0 ); /*ctxIdx == 276 */            x264_cabac_encode_decision( &h->cabac, 3 + 3, ( mb->i_cbp_luma == 0 ? 0 : 1 ));            if( mb->i_cbp_chroma == 0 )            {                x264_cabac_encode_decision( &h->cabac, 3 + 4, 0 );            }            else            {                x264_cabac_encode_decision( &h->cabac, 3 + 4, 1 );                x264_cabac_encode_decision( &h->cabac, 3 + 5, ( mb->i_cbp_chroma == 1 ? 0 : 1 ) );            }            x264_cabac_encode_decision( &h->cabac, 3 + 6, ( (mb->i_intra16x16_pred_mode / 2) ? 1 : 0 ));            x264_cabac_encode_decision( &h->cabac, 3 + 7, ( (mb->i_intra16x16_pred_mode % 2) ? 1 : 0 ));        }    }    else if( h->sh.i_type == SLICE_TYPE_P )    {        /* prefix: 14, suffix: 17 */        if( mb->i_type == P_L0 )        {            if( mb->i_partition == D_16x16 )            {                x264_cabac_encode_decision( &h->cabac, 14, 0 );                x264_cabac_encode_decision( &h->cabac, 15, 0 );                x264_cabac_encode_decision( &h->cabac, 16, 0 );            }            else if( mb->i_partition == D_16x8 )            {                x264_cabac_encode_decision( &h->cabac, 14, 0 );                x264_cabac_encode_decision( &h->cabac, 15, 1 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产欧美一区二区| 国产视频一区在线播放| 久久午夜电影网| 久久国产精品露脸对白| 欧美视频第二页| 中文字幕欧美日韩一区| 国产美女精品人人做人人爽 | 亚洲精品视频免费观看| 丁香六月综合激情| 国产精品久久精品日日| 色狠狠av一区二区三区| 亚洲高清三级视频| 欧美日韩在线电影| 天天综合天天综合色| 欧美剧情电影在线观看完整版免费励志电影 | 欧美日本一道本| 久久99国产精品尤物| 国产清纯白嫩初高生在线观看91| 99视频精品免费视频| 亚洲香蕉伊在人在线观| 久久午夜色播影院免费高清 | 一区二区三区不卡视频| 欧美日韩一卡二卡三卡 | 久久蜜臀精品av| 99久久久国产精品免费蜜臀| 亚洲精品第一国产综合野| 欧美日本在线播放| 高清国产午夜精品久久久久久| 国产精品蜜臀在线观看| 欧美色大人视频| 国产综合色产在线精品| 国产精品视频九色porn| 一道本成人在线| 精品亚洲porn| 一区二区三区在线免费观看| 精品国一区二区三区| 成人三级伦理片| 蜜桃精品视频在线观看| 亚洲日本护士毛茸茸| 久久亚洲欧美国产精品乐播| 欧美日韩久久一区二区| 波多野结衣精品在线| 美女诱惑一区二区| 亚洲色图20p| 久久婷婷成人综合色| 欧美日韩精品一区二区三区 | 欧美日韩成人在线| av在线不卡网| 国产一区二区中文字幕| 日本成人在线一区| 亚洲一区二区三区精品在线| 精品国产伦一区二区三区免费| 欧美日韩精品欧美日韩精品 | 欧美精品三级日韩久久| 欧美高清视频不卡网| 成人美女视频在线看| 国产一区二区调教| 日韩美女啊v在线免费观看| caoporn国产一区二区| 国产综合色视频| 天天综合天天做天天综合| 一二三区精品视频| 一区二区三区电影在线播| 亚洲欧美偷拍卡通变态| 亚洲精品中文在线观看| 亚洲欧洲成人av每日更新| 综合中文字幕亚洲| 亚洲伦理在线免费看| 亚洲男人都懂的| 亚洲影视在线播放| 午夜精品福利一区二区三区av| 午夜激情综合网| 美女诱惑一区二区| 韩国女主播成人在线| 高清免费成人av| 在线中文字幕一区二区| 欧美日韩免费电影| 精品国精品自拍自在线| 日本一区二区在线不卡| 亚洲人快播电影网| 天天操天天色综合| 国产夫妻精品视频| 色8久久精品久久久久久蜜| 这里只有精品99re| 中文字幕乱码一区二区免费| 亚洲日本中文字幕区| 日韩精品乱码av一区二区| 精一区二区三区| 99久久精品99国产精品| 欧美日韩高清在线播放| 久久久天堂av| 亚洲国产婷婷综合在线精品| 麻豆精品一二三| 成人h精品动漫一区二区三区| 色香蕉成人二区免费| 91精品国产高清一区二区三区 | 亚洲美女少妇撒尿| 石原莉奈在线亚洲三区| 国产盗摄女厕一区二区三区| 色丁香久综合在线久综合在线观看| 69av一区二区三区| 国产精品久久久久久久裸模| 婷婷综合另类小说色区| 成人午夜视频在线观看| 91精品国产免费久久综合| 欧美国产97人人爽人人喊| 日韩影院免费视频| 99riav一区二区三区| 精品国产a毛片| 性做久久久久久久免费看| 风流少妇一区二区| 欧美日韩另类国产亚洲欧美一级| 久久一区二区三区国产精品| 一区二区三区在线观看欧美| 国产美女主播视频一区| 91麻豆精品国产自产在线| 亚洲欧美日韩在线不卡| 国产大陆亚洲精品国产| 欧美一级理论性理论a| 一区二区三区欧美亚洲| 成人黄色在线看| 日韩欧美区一区二| 日韩va亚洲va欧美va久久| 日本乱人伦aⅴ精品| 国产精品入口麻豆原神| 国产乱对白刺激视频不卡| 在线成人av影院| 图片区小说区国产精品视频| 日本精品视频一区二区| 亚洲欧美在线视频| 99久久综合狠狠综合久久| 国产精品拍天天在线| 国产**成人网毛片九色| 国产精品丝袜久久久久久app| 国产精品一区二区久激情瑜伽| 精品人伦一区二区色婷婷| 天堂va蜜桃一区二区三区| 欧美日韩不卡一区| 免费成人深夜小野草| 欧美一区二区三区白人| 奇米精品一区二区三区在线观看 | 欧美韩国日本不卡| 国产一区二区精品久久91| 日韩视频免费观看高清完整版在线观看 | 国产ts人妖一区二区| xfplay精品久久| 国产在线精品一区二区夜色| 精品粉嫩aⅴ一区二区三区四区| 免费精品视频最新在线| 欧美videossexotv100| 国产美女精品在线| 中文字幕亚洲在| 欧美少妇性性性| 久久疯狂做爰流白浆xx| 欧美韩国日本不卡| 91搞黄在线观看| 蜜臀精品久久久久久蜜臀| 2019国产精品| 91小视频在线免费看| 亚洲成av人片在www色猫咪| 精品国产一区二区精华| 丁香桃色午夜亚洲一区二区三区| 亚洲丝袜另类动漫二区| 欧美一区二视频| 国产成+人+日韩+欧美+亚洲| 综合久久久久久| 日韩免费高清视频| 97se亚洲国产综合自在线 | 2023国产精华国产精品| 成人动漫中文字幕| 图片区小说区国产精品视频| 国产午夜精品久久| 欧美日韩色综合| 国产成人免费网站| 亚洲国产成人av| 中文子幕无线码一区tr| 欧美日韩国产一级| 国产精品一区二区三区99| 亚洲精品精品亚洲| 欧美成人一区二区三区在线观看| 国产福利一区二区三区| 午夜亚洲国产au精品一区二区| 久久久久久久一区| 欧美丰满高潮xxxx喷水动漫| 国产成a人亚洲精| 日本网站在线观看一区二区三区| 中文字幕亚洲一区二区va在线| 日韩欧美的一区| 欧美电影在线免费观看| 成人av第一页| 国产成人综合亚洲网站| 美女免费视频一区二区| 一二三四社区欧美黄| 国产精品美女久久久久高潮| 日韩一区二区在线播放| 欧洲精品视频在线观看| av成人免费在线| 成人丝袜高跟foot| 国产成人免费在线视频| 国产综合成人久久大片91|