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

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

?? macroblock.h

?? 絕對好的源碼
?? H
字號:
/***************************************************************************** * macroblock.h: h264 encoder library ***************************************************************************** * Copyright (C) 2003 Laurent Aimar * $Id: macroblock.h,v 1.1 2004/06/03 19:27:07 fenrir Exp $ * * Authors: Laurent Aimar <fenrir@via.ecp.fr> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA. *****************************************************************************/#ifndef _MACROBLOCK_H#define _MACROBLOCK_H 1enum macroblock_position_e{    MB_LEFT     = 0x01,    MB_TOP      = 0x02,    MB_TOPRIGHT = 0x04,    MB_TOPLEFT  = 0x08,    MB_PRIVATE  = 0x10,    ALL_NEIGHBORS = 0xf,};static const int x264_pred_i4x4_neighbors[12] ={    MB_TOP,                         // I_PRED_4x4_V    MB_LEFT,                        // I_PRED_4x4_H    MB_LEFT | MB_TOP,               // I_PRED_4x4_DC    MB_TOP  | MB_TOPRIGHT,          // I_PRED_4x4_DDL    MB_LEFT | MB_TOPLEFT | MB_TOP,  // I_PRED_4x4_DDR    MB_LEFT | MB_TOPLEFT | MB_TOP,  // I_PRED_4x4_VR    MB_LEFT | MB_TOPLEFT | MB_TOP,  // I_PRED_4x4_HD    MB_TOP  | MB_TOPRIGHT,          // I_PRED_4x4_VL    MB_LEFT,                        // I_PRED_4x4_HU    MB_LEFT,                        // I_PRED_4x4_DC_LEFT    MB_TOP,                         // I_PRED_4x4_DC_TOP    0                               // I_PRED_4x4_DC_128};/* XXX mb_type isn't the one written in the bitstream -> only internal usage */#define IS_INTRA(type) ( (type) == I_4x4 || (type) == I_8x8 || (type) == I_16x16 )#define IS_SKIP(type)  ( (type) == P_SKIP || (type) == B_SKIP )#define IS_DIRECT(type)  ( (type) == B_DIRECT )enum mb_class_e{    I_4x4           = 0,    I_8x8           = 1,    I_16x16         = 2,    I_PCM           = 3,    P_L0            = 4,    P_8x8           = 5,    P_SKIP          = 6,    B_DIRECT        = 7,    B_L0_L0         = 8,    B_L0_L1         = 9,    B_L0_BI         = 10,    B_L1_L0         = 11,    B_L1_L1         = 12,    B_L1_BI         = 13,    B_BI_L0         = 14,    B_BI_L1         = 15,    B_BI_BI         = 16,    B_8x8           = 17,    B_SKIP          = 18,};static const int x264_mb_type_fix[19] ={    I_4x4, I_4x4, I_16x16, I_PCM,    P_L0, P_8x8, P_SKIP,    B_DIRECT, B_L0_L0, B_L0_L1, B_L0_BI, B_L1_L0, B_L1_L1,    B_L1_BI, B_BI_L0, B_BI_L1, B_BI_BI, B_8x8, B_SKIP};static const int x264_mb_type_list0_table[19][2] ={    {0,0}, {0,0}, {0,0}, {0,0}, /* INTRA */    {1,1},                  /* P_L0 */    {0,0},                  /* P_8x8 */    {1,1},                  /* P_SKIP */    {0,0},                  /* B_DIRECT */    {1,1}, {1,0}, {1,1},    /* B_L0_* */    {0,1}, {0,0}, {0,1},    /* B_L1_* */    {1,1}, {1,0}, {1,1},    /* B_BI_* */    {0,0},                  /* B_8x8 */    {0,0}                   /* B_SKIP */};static const int x264_mb_type_list1_table[19][2] ={    {0,0}, {0,0}, {0,0}, {0,0}, /* INTRA */    {0,0},                  /* P_L0 */    {0,0},                  /* P_8x8 */    {0,0},                  /* P_SKIP */    {0,0},                  /* B_DIRECT */    {0,0}, {0,1}, {0,1},    /* B_L0_* */    {1,0}, {1,1}, {1,1},    /* B_L1_* */    {1,0}, {1,1}, {1,1},    /* B_BI_* */    {0,0},                  /* B_8x8 */    {0,0}                   /* B_SKIP */};#define IS_SUB4x4(type) ( (type ==D_L0_4x4)||(type ==D_L1_4x4)||(type ==D_BI_4x4))#define IS_SUB4x8(type) ( (type ==D_L0_4x8)||(type ==D_L1_4x8)||(type ==D_BI_4x8))#define IS_SUB8x4(type) ( (type ==D_L0_8x4)||(type ==D_L1_8x4)||(type ==D_BI_8x4))#define IS_SUB8x8(type) ( (type ==D_L0_8x8)||(type ==D_L1_8x8)||(type ==D_BI_8x8)||(type ==D_DIRECT_8x8))enum mb_partition_e{    /* sub partition type for P_8x8 and B_8x8 */    D_L0_4x4        = 0,    D_L0_8x4        = 1,    D_L0_4x8        = 2,    D_L0_8x8        = 3,    /* sub partition type for B_8x8 only */    D_L1_4x4        = 4,    D_L1_8x4        = 5,    D_L1_4x8        = 6,    D_L1_8x8        = 7,    D_BI_4x4        = 8,    D_BI_8x4        = 9,    D_BI_4x8        = 10,    D_BI_8x8        = 11,    D_DIRECT_8x8    = 12,    /* partition */    D_8x8           = 13,    D_16x8          = 14,    D_8x16          = 15,    D_16x16         = 16,};static const int x264_mb_partition_listX_table[2][17] ={{    1, 1, 1, 1, /* D_L0_* */    0, 0, 0, 0, /* D_L1_* */    1, 1, 1, 1, /* D_BI_* */    0,          /* D_DIRECT_8x8 */    0, 0, 0, 0  /* 8x8 .. 16x16 */},{    0, 0, 0, 0, /* D_L0_* */    1, 1, 1, 1, /* D_L1_* */    1, 1, 1, 1, /* D_BI_* */    0,          /* D_DIRECT_8x8 */    0, 0, 0, 0  /* 8x8 .. 16x16 */}};static const int x264_mb_partition_count_table[17] ={    /* sub L0 */    4, 2, 2, 1,    /* sub L1 */    4, 2, 2, 1,    /* sub BI */    4, 2, 2, 1,    /* Direct */    1,    /* Partition */    4, 2, 2, 1};static const int x264_mb_partition_pixel_table[17] ={    6, 4, 5, 3, 6, 4, 5, 3, 6, 4, 5, 3, 3, 3, 1, 2, 0};/* zigzags are transposed with respect to the tables in the standard */static const int x264_zigzag_scan4[16] ={    0,  4,  1,  2,  5,  8, 12,  9,  6,  3,  7, 10, 13, 14, 11, 15};static const int x264_zigzag_scan8[64] ={    0,  8,  1,  2,  9, 16, 24, 17, 10,  3,  4, 11, 18, 25, 32, 40,   33, 26, 19, 12,  5,  6, 13, 20, 27, 34, 41, 48, 56, 49, 42, 35,   28, 21, 14,  7, 15, 22, 29, 36, 43, 50, 57, 58, 51, 44, 37, 30,   23, 31, 38, 45, 52, 59, 60, 53, 46, 39, 47, 54, 61, 62, 55, 63};static const uint8_t block_idx_x[16] ={    0, 1, 0, 1, 2, 3, 2, 3, 0, 1, 0, 1, 2, 3, 2, 3};static const uint8_t block_idx_y[16] ={    0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 3, 3, 2, 2, 3, 3};static const uint8_t block_idx_xy[4][4] ={    { 0, 2, 8,  10 },    { 1, 3, 9,  11 },    { 4, 6, 12, 14 },    { 5, 7, 13, 15 }};static const int i_chroma_qp_table[52] ={     0,  1,  2,  3,  4,  5,  6,  7,  8,  9,    10, 11, 12, 13, 14, 15, 16, 17, 18, 19,    20, 21, 22, 23, 24, 25, 26, 27, 28, 29,    29, 30, 31, 32, 32, 33, 34, 34, 35, 35,    36, 36, 37, 37, 37, 38, 38, 38, 39, 39,    39, 39};enum cabac_ctx_block_cat_e{    DCT_LUMA_DC   = 0,    DCT_LUMA_AC   = 1,    DCT_LUMA_4x4  = 2,    DCT_CHROMA_DC = 3,    DCT_CHROMA_AC = 4,    DCT_LUMA_8x8  = 5,};int  x264_macroblock_cache_init( x264_t *h );void x264_macroblock_slice_init( x264_t *h );void x264_macroblock_cache_load( x264_t *h, int i_mb_x, int i_mb_y );void x264_macroblock_cache_save( x264_t *h );void x264_macroblock_cache_end( x264_t *h );void x264_macroblock_bipred_init( x264_t *h );/* x264_mb_predict_mv_16x16: *      set mvp with predicted mv for D_16x16 block *      h->mb. need only valid values from other blocks */void x264_mb_predict_mv_16x16( x264_t *h, int i_list, int i_ref, int mvp[2] );/* x264_mb_predict_mv_pskip: *      set mvp with predicted mv for P_SKIP *      h->mb. need only valid values from other blocks */void x264_mb_predict_mv_pskip( x264_t *h, int mv[2] );/* x264_mb_predict_mv: *      set mvp with predicted mv for all blocks except SKIP and DIRECT *      h->mb. need valid ref/partition/sub of current block to be valid *      and valid mv/ref from other blocks. */void x264_mb_predict_mv( x264_t *h, int i_list, int idx, int i_width, int mvp[2] );/* x264_mb_predict_mv_direct16x16: *      set h->mb.cache.mv and h->mb.cache.ref for B_SKIP or B_DIRECT *      h->mb. need only valid values from other blocks. *      return 1 on success, 0 on failure. *      if b_changed != NULL, set it to whether refs or mvs differ from *      before this functioncall. */int x264_mb_predict_mv_direct16x16( x264_t *h, int *b_changed );/* x264_mb_load_mv_direct8x8: *      set h->mb.cache.mv and h->mb.cache.ref for B_DIRECT *      must be called only after x264_mb_predict_mv_direct16x16 */void x264_mb_load_mv_direct8x8( x264_t *h, int idx );/* x264_mb_predict_mv_ref16x16: *      set mvc with D_16x16 prediction. *      uses all neighbors, even those that didn't end up using this ref. *      h->mb. need only valid values from other blocks */void x264_mb_predict_mv_ref16x16( x264_t *h, int i_list, int i_ref, int mvc[8][2], int *i_mvc );int  x264_mb_predict_intra4x4_mode( x264_t *h, int idx );int  x264_mb_predict_non_zero_code( x264_t *h, int idx );/* x264_mb_transform_8x8_allowed: *      check whether any partition is smaller than 8x8 (or at least *      might be, according to just partition type.) *      doesn't check for intra or cbp */int  x264_mb_transform_8x8_allowed( x264_t *h );void x264_mb_encode_i4x4( x264_t *h, int idx, int i_qscale );void x264_mb_encode_i8x8( x264_t *h, int idx, int i_qscale );void x264_mb_mc( x264_t *h );void x264_mb_mc_8x8( x264_t *h, int i8 );static inline void x264_macroblock_cache_ref( x264_t *h, int x, int y, int width, int height, int i_list, int ref ){    int dy, dx;    for( dy = 0; dy < height; dy++ )    {        for( dx = 0; dx < width; dx++ )        {            h->mb.cache.ref[i_list][X264_SCAN8_0+x+dx+8*(y+dy)] = ref;        }    }}static inline void x264_macroblock_cache_mv( x264_t *h, int x, int y, int width, int height, int i_list, int mvx, int mvy ){    int dy, dx;    for( dy = 0; dy < height; dy++ )    {        for( dx = 0; dx < width; dx++ )        {            h->mb.cache.mv[i_list][X264_SCAN8_0+x+dx+8*(y+dy)][0] = mvx;            h->mb.cache.mv[i_list][X264_SCAN8_0+x+dx+8*(y+dy)][1] = mvy;        }    }}static inline void x264_macroblock_cache_mvd( x264_t *h, int x, int y, int width, int height, int i_list, int mdx, int mdy ){    int dy, dx;    for( dy = 0; dy < height; dy++ )    {        for( dx = 0; dx < width; dx++ )        {            h->mb.cache.mvd[i_list][X264_SCAN8_0+x+dx+8*(y+dy)][0] = mdx;            h->mb.cache.mvd[i_list][X264_SCAN8_0+x+dx+8*(y+dy)][1] = mdy;        }    }}static inline void x264_macroblock_cache_skip( x264_t *h, int x, int y, int width, int height, int b_skip ){    int dy, dx;    for( dy = 0; dy < height; dy++ )    {        for( dx = 0; dx < width; dx++ )        {            h->mb.cache.skip[X264_SCAN8_0+x+dx+8*(y+dy)] = b_skip;        }    }}static inline void x264_macroblock_cache_intra8x8_pred( x264_t *h, int x, int y, int i_mode ){    int *cache = &h->mb.cache.intra4x4_pred_mode[X264_SCAN8_0+x+8*y];    cache[0] = cache[1] = cache[8] = cache[9] = i_mode;}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
粉嫩13p一区二区三区| 婷婷丁香激情综合| 精品日韩一区二区三区 | 亚洲精品第1页| 中文字幕在线不卡国产视频| 国产精品久久午夜夜伦鲁鲁| 国产日韩v精品一区二区| 国产欧美日韩不卡免费| 久久久99精品久久| 中文一区二区在线观看| 国产精品久久久久9999吃药| 亚洲视频 欧洲视频| 亚洲最大色网站| 免费在线观看视频一区| 久久电影网电视剧免费观看| 国产精品自在在线| 99视频一区二区三区| 欧美性淫爽ww久久久久无| 91精品国产aⅴ一区二区| 欧美大片在线观看一区| 久久精品亚洲乱码伦伦中文| 国产精品三级电影| 天堂一区二区在线免费观看| 久久成人久久爱| ●精品国产综合乱码久久久久| 韩国欧美国产1区| 日韩高清电影一区| 国产日韩精品一区二区浪潮av | 17c精品麻豆一区二区免费| 亚洲视频你懂的| 香港成人在线视频| 高清日韩电视剧大全免费| 在线看国产一区二区| 精品国产乱码久久久久久闺蜜 | 国产美女精品人人做人人爽| 成人免费三级在线| 制服丝袜在线91| 综合欧美一区二区三区| 久久国产精品露脸对白| 色综合久久天天| 精品少妇一区二区三区在线播放| 国产精品国产三级国产普通话蜜臀 | 欧美v亚洲v综合ⅴ国产v| 中文字幕字幕中文在线中不卡视频| 亚洲mv在线观看| 成人免费看片app下载| 日韩一区二区三| 亚洲伊人伊色伊影伊综合网| 国产一区二区三区电影在线观看| 欧美亚洲尤物久久| 亚洲免费观看高清在线观看| 日韩国产在线一| 在线看不卡av| 国产精品久久99| 黄色精品一二区| 欧美夫妻性生活| 亚洲狠狠爱一区二区三区| 99久久久精品| 久久精品一区二区三区av| 蜜桃一区二区三区四区| 欧美日韩aaaaa| 亚洲宅男天堂在线观看无病毒| 成人精品高清在线| 国产午夜三级一区二区三| 日韩电影一区二区三区| 欧美日韩国产精品成人| 亚洲主播在线观看| 色哦色哦哦色天天综合| 亚洲人成在线播放网站岛国 | 欧美日韩成人综合| 伊人色综合久久天天人手人婷| aaa欧美大片| 国产精品久久久久久久久久久免费看 | 捆绑紧缚一区二区三区视频| 欧美视频在线一区| 亚洲午夜av在线| 欧美精品v国产精品v日韩精品| 午夜伊人狠狠久久| 欧美一区二区三区免费观看视频| 午夜电影一区二区三区| 欧美一区二区三区小说| 青青青爽久久午夜综合久久午夜| 欧美一卡在线观看| 黄网站免费久久| 国产精品美日韩| 欧洲色大大久久| 日日摸夜夜添夜夜添国产精品| 7777精品久久久大香线蕉| 蜜桃视频在线观看一区| 2023国产一二三区日本精品2022| 国产酒店精品激情| 中文字幕国产精品一区二区| 一本到不卡免费一区二区| 夜夜精品浪潮av一区二区三区| 欧美日本一道本在线视频| 久久精品国产久精国产| 国产精品久久看| 欧美日韩在线播放三区四区| 蜜臀av一区二区| 国产精品久久国产精麻豆99网站 | 欧美一级片在线观看| 国产一区二区网址| 亚洲精品乱码久久久久久| 欧美高清精品3d| 顶级嫩模精品视频在线看| 日韩av网站在线观看| 精品国产伦一区二区三区观看方式 | 精品久久人人做人人爰| 99精品桃花视频在线观看| 视频一区二区三区在线| 久久伊人蜜桃av一区二区| 91高清视频在线| 激情久久五月天| 亚洲一区二区三区免费视频| 精品福利一二区| 欧美最猛黑人xxxxx猛交| 国产在线精品一区二区夜色 | 国产三级一区二区三区| 欧洲国产伦久久久久久久| 国产毛片精品视频| 亚洲一区二区三区四区在线免费观看| 精品少妇一区二区三区在线视频| 99国产精品久久久久久久久久| 理论电影国产精品| 午夜私人影院久久久久| 国产精品成人网| 国产三级一区二区三区| 日韩亚洲欧美一区| 欧美日韩国产免费一区二区| www.av精品| 国产成人精品在线看| 久久99久久精品| 日本欧美一区二区三区乱码| 亚洲最快最全在线视频| 成人欧美一区二区三区黑人麻豆| 精品福利一区二区三区免费视频| 欧美日本一区二区在线观看| 91九色02白丝porn| 菠萝蜜视频在线观看一区| 国产在线精品一区在线观看麻豆| 日日夜夜精品视频天天综合网| 亚洲自拍偷拍九九九| 亚洲欧美日韩一区二区三区在线观看| 国产人成一区二区三区影院| 精品国产伦一区二区三区免费| 日韩精品资源二区在线| 日韩欧美成人一区| 日韩一本二本av| 欧美不卡一二三| 久久久精品欧美丰满| 久久久精品国产免大香伊| 久久久精品国产99久久精品芒果| 精品国产髙清在线看国产毛片| 91精品国产日韩91久久久久久| 欧美日韩国产高清一区二区三区| 欧美色区777第一页| 欧美日本不卡视频| 欧美一区二区私人影院日本| 日韩欧美中文一区二区| 欧美成人伊人久久综合网| 2023国产精华国产精品| 国产精品视频yy9299一区| 亚洲日本丝袜连裤袜办公室| 一区二区日韩av| 日韩国产欧美在线观看| 久久av资源站| 久草热8精品视频在线观看| 国产老肥熟一区二区三区| 成人黄页毛片网站| 欧美影院午夜播放| 精品久久久久av影院| 中文字幕av免费专区久久| 亚洲黄一区二区三区| 亚洲成人动漫在线免费观看| 免费精品视频最新在线| 国产高清久久久| 色噜噜夜夜夜综合网| 日韩精品一区国产麻豆| 国产精品素人一区二区| 性欧美疯狂xxxxbbbb| 国产在线不卡一卡二卡三卡四卡| 成人av网址在线观看| 日韩一区二区三区四区| 国产精品日韩精品欧美在线| 无吗不卡中文字幕| 成人午夜激情影院| 欧美伦理电影网| 国产精品欧美精品| 日本成人在线不卡视频| 国产精品123| 欧美日韩另类国产亚洲欧美一级| 国产亚洲一区二区三区在线观看| 一二三区精品福利视频| 国产精品亚洲一区二区三区妖精| 欧美亚洲国产怡红院影院| 久久看人人爽人人| 天堂影院一区二区| 色欧美88888久久久久久影院| 久久―日本道色综合久久| 亚洲成在线观看|