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

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

?? encoder.c

?? 圖象壓縮程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
    {        if( h->freference[i]->i_poc >= 0 )        {            if( h->freference[i]->i_poc < h->fdec->i_poc )            {                h->fref0[h->i_ref0++] = h->freference[i];            }            else if( h->freference[i]->i_poc > h->fdec->i_poc )            {                h->fref1[h->i_ref1++] = h->freference[i];            }        }    }    /* Order ref0 from higher to lower poc */    do    {        b_ok = 1;        for( i = 0; i < h->i_ref0 - 1; i++ )        {            if( h->fref0[i]->i_poc < h->fref0[i+1]->i_poc )            {                x264_frame_t *tmp = h->fref0[i+1];                h->fref0[i+1] = h->fref0[i];                h->fref0[i] = tmp;                b_ok = 0;                break;            }        }    } while( !b_ok );    /* Order ref1 from lower to higher poc (bubble sort) for B-frame */    do    {        b_ok = 1;        for( i = 0; i < h->i_ref1 - 1; i++ )        {            if( h->fref1[i]->i_poc > h->fref1[i+1]->i_poc )            {                x264_frame_t *tmp = h->fref1[i+1];                h->fref1[i+1] = h->fref1[i];                h->fref1[i] = tmp;                b_ok = 0;                break;            }        }    } while( !b_ok );    if( h->i_ref0 > h->param.i_frame_reference )    {        h->i_ref0 = h->param.i_frame_reference;    }    if( h->i_ref1 > 1 )    {        h->i_ref1 = 1;    }    /* Init the rate control */    x264_ratecontrol_start( h->rc, i_slice_type );    /* ------------------------ Create slice header  ----------------------- */    if( i_nal_type == NAL_SLICE_IDR )    {        x264_slice_header_init( &h->sh, &h->param, h->sps, h->pps, i_slice_type, h->i_idr_pic_id, h->i_frame_num - 1 );        /* increment id */        h->i_idr_pic_id = ( h->i_idr_pic_id + 1 ) % 65535;    }    else    {        x264_slice_header_init( &h->sh, &h->param, h->sps, h->pps, i_slice_type, -1, h->i_frame_num - 1 );        /* always set the real higher num of ref frame used */        h->sh.b_num_ref_idx_override = 1;        h->sh.i_num_ref_idx_l0_active = h->i_ref0 <= 0 ? 1 : h->i_ref0;        h->sh.i_num_ref_idx_l1_active = h->i_ref1 <= 0 ? 1 : h->i_ref1;    }    if( h->sps->i_poc_type == 0 )    {        h->sh.i_poc_lsb = h->fdec->i_poc & ( (1 << h->sps->i_log2_max_poc_lsb) - 1 );        h->sh.i_delta_poc_bottom = 0;   /* XXX won't work for field */    }    else if( h->sps->i_poc_type == 1 )    {        /* FIXME TODO FIXME */    }    else    {        /* Nothing to do ? */    }    /* global qp */    h->sh.i_qp_delta = x264_ratecontrol_qp( h->rc ) - h->pps->i_pic_init_qp;    /* get adapative cabac model if needed */    if( h->param.b_cabac )    {        if( h->param.i_cabac_init_idc == -1 )        {            h->sh.i_cabac_init_idc = x264_cabac_model_get( &h->cabac, i_slice_type );        }    }    /* ---------------------- Write the bitstream -------------------------- */    /* init bitstream context */    h->i_nal = 0;    bs_init( &h->bs, h->p_bitstream, h->i_bitstream );    /* Put SPS and PPS */    if( h->i_frame == 0 )    {        /* generate sequence parameters */        x264_nal_start( h, NAL_SPS, NAL_PRIORITY_HIGHEST );        x264_sps_write( &h->bs, h->sps );        x264_nal_end( h );        /* generate picture parameters */        x264_nal_start( h, NAL_PPS, NAL_PRIORITY_HIGHEST );        x264_pps_write( &h->bs, h->pps );        x264_nal_end( h );    }    /* Reset stats */    for( i = 0; i < 18; i++ ) h->stat.i_mb_count[i] = 0;    /* Slice */    x264_nal_start( h, i_nal_type, i_nal_ref_idc );    /* Slice header */    x264_slice_header_write( &h->bs, &h->sh, i_nal_ref_idc );    if( h->param.b_cabac )    {        /* alignement needed */        bs_align_1( &h->bs );        /* init cabac */        x264_cabac_context_init( &h->cabac, h->sh.i_type, h->sh.pps->i_pic_init_qp + h->sh.i_qp_delta, h->sh.i_cabac_init_idc );        x264_cabac_encode_init ( &h->cabac, &h->bs );    }    for( mb_xy = 0, i_skip = 0; mb_xy < h->sps->i_mb_width * h->sps->i_mb_height; mb_xy++ )    {        x264_mb_context_t context;        x264_macroblock_t *mb;        mb = &h->mb[mb_xy];        /* load neighbour */        x264_macroblock_context_load( h, mb, &context );        /* analyse parameters         * Slice I: choose I_4x4 or I_16x16 mode         * Slice P: choose between using P mode or intra (4x4 or 16x16)         * */        TIMER_START( i_mtime_analyse );        x264_macroblock_analyse( h, &h->mb[mb_xy] );        TIMER_STOP( i_mtime_analyse );        /* encode this macrobock -> be carefull it can change the mb type to P_SKIP if needed */        TIMER_START( i_mtime_encode );        x264_macroblock_encode( h, mb );        TIMER_STOP( i_mtime_encode );        TIMER_START( i_mtime_write );        if( IS_SKIP( mb->i_type ) )        {            if( h->param.b_cabac )            {                if( mb_xy > 0 )                {                    /* not end_of_slice_flag */                    x264_cabac_encode_terminal( &h->cabac, 0 );                }                x264_cabac_mb_skip( h, mb, 1 );            }            else            {                i_skip++;            }        }        else        {            if( h->param.b_cabac )            {                if( mb_xy > 0 )                {                    /* not end_of_slice_flag */                    x264_cabac_encode_terminal( &h->cabac, 0 );                }                if( i_slice_type != SLICE_TYPE_I )                {                    x264_cabac_mb_skip( h, mb, 0 );                }                x264_macroblock_write_cabac( h, &h->bs, mb );            }            else            {                if( i_slice_type != SLICE_TYPE_I )                {                    bs_write_ue( &h->bs, i_skip );  /* skip run */                    i_skip = 0;                }                x264_macroblock_write_cavlc( h, &h->bs, mb );            }        }        TIMER_STOP( i_mtime_write );        h->stat.i_mb_count[mb->i_type]++;    }    if( h->param.b_cabac )    {        /* end of slice */        x264_cabac_encode_terminal( &h->cabac, 1 );    }    else if( i_skip > 0 )    {        bs_write_ue( &h->bs, i_skip );  /* last skip run */    }    if( h->param.b_cabac )    {        int i_cabac_word;        x264_cabac_encode_flush( &h->cabac );        /* TODO cabac stuffing things (p209) */        i_cabac_word = (((3 * h->cabac.i_sym_cnt - 3 * 96 * h->sps->i_mb_width * h->sps->i_mb_height)/32) - bs_pos( &h->bs)/8)/3;        while( i_cabac_word > 0 )        {            bs_write( &h->bs, 16, 0x0000 );            i_cabac_word--;        }    }    else    {        /* rbsp_slice_trailing_bits */        bs_rbsp_trailing( &h->bs );    }    x264_nal_end( h );    /* now set output*/    *pi_nal = h->i_nal;    *pp_nal = &h->nal[0];    /* update cabac */    if( h->param.b_cabac )    {        x264_cabac_model_update( &h->cabac, i_slice_type, h->sh.pps->i_pic_init_qp + h->sh.i_qp_delta );    }    /* update rc */    x264_ratecontrol_end( h->rc, h->nal[h->i_nal-1].i_payload * 8 );    /* ----------------------- handle frame reference ---------------------- */    if( i_nal_ref_idc != NAL_PRIORITY_DISPOSABLE )    {        /* apply deblocking filter to the current decoded picture */        if( h->param.b_deblocking_filter )        {            TIMER_START( i_mtime_filter );            x264_frame_deblocking_filter( h, i_slice_type );            TIMER_STOP( i_mtime_filter );        }        /* expand border */        x264_frame_expand_border( h->fdec );        /* move frame in the buffer */        h->fdec = h->freference[h->param.i_frame_reference+1];        for( i = h->param.i_frame_reference+1; i > 0; i-- )        {            h->freference[i] = h->freference[i-1];        }        h->freference[0] = h->fdec;    }    /* increase frame count */    h->i_frame++;    /* restore CPU state (before using float again) */    x264_cpu_restore( h->cpu );    /* PSNR */    psnr_y = x264_psnr( frame_psnr->plane[0], frame_psnr->i_stride[0], h->picture->plane[0], h->picture->i_stride[0], h->param.i_width, h->param.i_height );    psnr_u = x264_psnr( frame_psnr->plane[1], frame_psnr->i_stride[1], h->picture->plane[1], h->picture->i_stride[1], h->param.i_width/2, h->param.i_height/2);    psnr_v = x264_psnr( frame_psnr->plane[2], frame_psnr->i_stride[2], h->picture->plane[2], h->picture->i_stride[2], h->param.i_width/2, h->param.i_height/2);    /* print stat */    fprintf( stderr, "frame=%4d NAL=%d Slice:%c Poc:%-3d I4x4:%-5d I16x16:%-5d P:%-5d SKIP:%-3d size=%d bytes PSNR Y:%2.2f U:%2.2f V:%2.2f\n",             h->i_frame - 1,             i_nal_ref_idc,             i_slice_type == SLICE_TYPE_I ? 'I' : (i_slice_type == SLICE_TYPE_P ? 'P' : 'B' ),             frame_psnr->i_poc,             h->stat.i_mb_count[I_4x4],             h->stat.i_mb_count[I_16x16],             h->stat.i_mb_count[P_L0] + h->stat.i_mb_count[P_8x8],             h->stat.i_mb_count[P_SKIP],             h->nal[h->i_nal-1].i_payload,             psnr_y, psnr_u, psnr_v );#if 0    /* Dump reconstructed frame */    x264_frame_dump( h, frame_psnr, "fdec.yuv" );#endif#if 0    if( h->i_ref0 > 0 )    {        x264_frame_dump( h, h->fref0[0], "ref0.yuv" );    }    if( h->i_ref1 > 0 )    {        x264_frame_dump( h, h->fref1[0], "ref1.yuv" );    }#endif    return 0;}/**************************************************************************** * x264_encoder_close: ****************************************************************************/void    x264_encoder_close  ( x264_t *h ){    int64_t i_mtime_total = i_mtime_analyse + i_mtime_encode + i_mtime_write + i_mtime_filter + 1;    int i;    fprintf( stderr, "x264: analyse=%d(%lldms) encode=%d(%lldms) write=%d(%lldms) filter=%d(%lldms)",             (int)(100*i_mtime_analyse/i_mtime_total), i_mtime_analyse/1000,             (int)(100*i_mtime_encode/i_mtime_total), i_mtime_encode/1000,             (int)(100*i_mtime_write/i_mtime_total), i_mtime_write/1000,             (int)(100*i_mtime_filter/i_mtime_total), i_mtime_filter/1000 );    /* ref frames */    for( i = 0; i < h->param.i_frame_reference+2; i++ )    {        x264_frame_delete( h->freference[i] );    }    /* empty all allocated picture for bframes */    for( i = 0; i < h->param.i_bframe; i++ )    {        if( h->frame_unused[i] )        {            x264_frame_delete( h->frame_unused[i] );        }        if( h->bframe_current[i] )        {            x264_frame_delete( h->bframe_current[i] );        }        if( h->frame_next[i] )        {            x264_frame_delete( h->frame_next[i] );        }    }    /* rc */    x264_ratecontrol_delete( h->rc );    x264_free( h->mb );    x264_free( h->p_bitstream );    x264_free( h );}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区免费不卡| 91精品国产色综合久久| 欧美日韩精品一区二区三区蜜桃 | 亚洲人成在线播放网站岛国| 成人永久aaa| 久久精品夜夜夜夜久久| 国产成人亚洲精品青草天美 | 国产精品大尺度| 国产成人99久久亚洲综合精品| 亚洲国产成人一区二区三区| 成人涩涩免费视频| 丁香亚洲综合激情啪啪综合| 国产精品一区二区x88av| 国产一区视频导航| 国产精品国产自产拍高清av | 日韩片之四级片| 高清免费成人av| 成人免费黄色大片| 97国产一区二区| 五月天亚洲婷婷| 国产色一区二区| 欧美经典一区二区| 欧美日韩一级片在线观看| 久久不见久久见中文字幕免费| 国产视频视频一区| 中文字幕一区二区视频| 精品国产一区二区在线观看| 97精品久久久久中文字幕| 欧洲精品中文字幕| 国产精品1区2区3区在线观看| 国产精品主播直播| 色天使久久综合网天天| 精品午夜一区二区三区在线观看| 亚洲精品日韩一| 久久久久99精品国产片| 欧美一区二区三区视频免费| 精品福利一二区| 亚洲丝袜自拍清纯另类| 国产亚洲欧美激情| 亚洲激情综合网| 久久99精品视频| 色妹子一区二区| 激情综合五月婷婷| 91福利资源站| www欧美成人18+| 欧美精品一区二区高清在线观看| 久久精品亚洲一区二区三区浴池| 亚洲免费观看高清完整版在线观看 | 欧美一卡二卡三卡四卡| 国产精品热久久久久夜色精品三区| 欧美一区二区三区视频| 亚洲女性喷水在线观看一区| 久久精品国产99国产| 色综合天天综合狠狠| 91麻豆自制传媒国产之光| 成人午夜电影小说| 精品国产亚洲在线| 午夜视频在线观看一区二区三区| 成人h动漫精品| 99精品一区二区三区| 久久久av毛片精品| 日韩成人精品视频| 理论片日本一区| 欧美日本在线播放| 亚洲精品大片www| 成年人网站91| 国产精品国产精品国产专区不片| 国产在线精品视频| 欧美一区二区三区视频在线| 日韩中文欧美在线| 韩国欧美国产一区| 成人高清在线视频| 久久精品人人做| 国产精品一区二区不卡| 久久综合九色综合97婷婷女人 | 极品少妇xxxx偷拍精品少妇| 欧美精品第1页| 久久久五月婷婷| 久久99日本精品| 精品国产污网站| 久久福利视频一区二区| 欧美一区二区三区影视| 日韩中文字幕一区二区三区| 欧美日韩精品一区视频| 亚洲电影中文字幕在线观看| 免费不卡在线观看| 99精品在线免费| 亚洲男帅同性gay1069| 色8久久精品久久久久久蜜| 尤物av一区二区| 884aa四虎影成人精品一区| 久久老女人爱爱| 国产成人av影院| 亚洲欧美另类久久久精品2019| 一本大道久久a久久综合| 亚洲专区一二三| 成人午夜短视频| 一区二区三区四区乱视频| 国产精品亚洲第一区在线暖暖韩国| 精品区一区二区| 亚洲777理论| 91香蕉视频污在线| 性做久久久久久久免费看| 日韩女优视频免费观看| 亚洲成人久久影院| 亚洲精品一线二线三线| 国产成人精品亚洲日本在线桃色| 国产精品久久久久9999吃药| 欧美中文字幕一区二区三区| 蜜臀久久久久久久| 欧美日韩色一区| 极品美女销魂一区二区三区免费| 国产精品美女www爽爽爽| 欧美私人免费视频| 亚洲精品视频一区二区| 日韩欧美专区在线| 成人不卡免费av| 日本亚洲天堂网| 国产精品久久久久影院色老大| 欧美日韩久久久久久| 国产一区二区主播在线| 一区二区三区在线免费| www久久精品| 7777精品伊人久久久大香线蕉最新版| 国产成人免费视频网站高清观看视频| 一区二区在线电影| 欧美激情资源网| 欧美一区二区播放| 欧美亚洲高清一区| a在线播放不卡| 亚洲特黄一级片| 精品成人一区二区三区四区| 在线一区二区三区四区五区| 国产成人精品亚洲777人妖| 午夜久久久影院| 樱桃国产成人精品视频| 亚洲国产精品精华液2区45| 欧美一区二区三区白人| 精品视频在线免费观看| eeuss影院一区二区三区| 国产成人精品综合在线观看| 日本不卡视频在线| 日韩高清欧美激情| 亚洲一区在线观看免费观看电影高清| 国产三级精品视频| 久久综合精品国产一区二区三区| 555夜色666亚洲国产免| 欧美日韩成人一区| 欧美综合久久久| 在线免费观看不卡av| 99久久精品一区| caoporm超碰国产精品| 高清beeg欧美| 成人午夜精品在线| 成人性生交大合| 91最新地址在线播放| 成人精品小蝌蚪| 成人av资源网站| 99麻豆久久久国产精品免费优播| 国产成人精品在线看| 99麻豆久久久国产精品免费| 成人精品一区二区三区中文字幕| 一区二区三区在线播| 欧美bbbbb| 欧美一区二区播放| 久久av中文字幕片| 一区二区三区欧美久久| 一区二区三区四区蜜桃| 亚洲第一主播视频| 成人久久视频在线观看| 不卡免费追剧大全电视剧网站| 99久久综合精品| 精品视频在线视频| 日韩欧美国产系列| 久久精品视频一区二区三区| 国产精品视频九色porn| 亚洲品质自拍视频网站| 亚洲一区二区三区爽爽爽爽爽| 日韩av一级电影| 美国毛片一区二区三区| 国产99精品视频| 精品婷婷伊人一区三区三| 精品国产露脸精彩对白| 亚洲欧美综合网| 视频一区中文字幕| 国产高清在线观看免费不卡| 91麻豆国产精品久久| 91精品国产福利在线观看| 国产欧美视频一区二区三区| 亚洲一区二区中文在线| 久久99这里只有精品| 欧美做爰猛烈大尺度电影无法无天| 欧美一级高清大全免费观看| 中文字幕乱码日本亚洲一区二区| 亚洲一区二区高清| 国产精品影音先锋| 欧美男女性生活在线直播观看| 国产日韩欧美精品综合| 性欧美疯狂xxxxbbbb| 成人免费观看av|