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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dsputil.h

?? wince 平臺(tái)下的h264 壓縮代碼程序
?? H
?? 第 1 頁 / 共 2 頁
字號(hào):
/* * DSP utils * Copyright (c) 2000, 2001, 2002 Fabrice Bellard. * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA *//** * @file dsputil.h * DSP utils. * note, many functions in here may use MMX which trashes the FPU state, it is * absolutely necessary to call emms_c() between dsp & float/double code */#ifndef DSPUTIL_H#define DSPUTIL_H#include "common.h"#include "avcodec.h"//#define DEBUG/* dct code */typedef short DCTELEM;void fdct_ifast (DCTELEM *data);void fdct_ifast248 (DCTELEM *data);void ff_jpeg_fdct_islow (DCTELEM *data);void ff_fdct248_islow (DCTELEM *data);void j_rev_dct (DCTELEM *data);void ff_fdct_mmx(DCTELEM *block);void ff_fdct_mmx2(DCTELEM *block);void ff_fdct_sse2(DCTELEM *block);/* encoding scans */extern const uint8_t ff_alternate_horizontal_scan[64];extern const uint8_t ff_alternate_vertical_scan[64];extern const uint8_t ff_zigzag_direct[64];extern const uint8_t ff_zigzag248_direct[64];/* pixel operations */#define MAX_NEG_CROP 384/* temporary */extern uint32_t squareTbl[512];extern uint8_t cropTbl[256 + 2 * MAX_NEG_CROP];/* VP3 DSP functions */void vp3_dsp_init_c(void);void vp3_idct_put_c(int16_t *input_data, int16_t *dequant_matrix,    int coeff_count, uint8_t *dest, int stride);void vp3_idct_add_c(int16_t *input_data, int16_t *dequant_matrix,    int coeff_count, uint8_t *dest, int stride);void vp3_dsp_init_mmx(void);void vp3_idct_put_mmx(int16_t *input_data, int16_t *dequant_matrix,    int coeff_count, uint8_t *dest, int stride);void vp3_idct_add_mmx(int16_t *input_data, int16_t *dequant_matrix,    int coeff_count, uint8_t *dest, int stride);/* minimum alignment rules ;)if u notice errors in the align stuff, need more alignment for some asm code for some cpuor need to use a function with less aligned data then send a mail to the ffmpeg-dev list, ...!warning these alignments might not match reallity, (missing attribute((align)) stuff somewhere possible)i (michael) didnt check them, these are just the alignents which i think could be reached easily ...!future video codecs might need functions with less strict alignment*//*void get_pixels_c(DCTELEM *block, const uint8_t *pixels, int line_size);void diff_pixels_c(DCTELEM *block, const uint8_t *s1, const uint8_t *s2, int stride);void put_pixels_clamped_c(const DCTELEM *block, uint8_t *pixels, int line_size);void add_pixels_clamped_c(const DCTELEM *block, uint8_t *pixels, int line_size);void clear_blocks_c(DCTELEM *blocks);*//* add and put pixel (decoding) */// blocksizes for op_pixels_func are 8x4,8x8 16x8 16x16//h for op_pixels_func is limited to {width/2, width} but never larger than 16 and never smaller then 4typedef void (*op_pixels_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int h);typedef void (*tpel_mc_func)(uint8_t *block/*align width (8 or 16)*/, const uint8_t *pixels/*align 1*/, int line_size, int w, int h);typedef void (*qpel_mc_func)(uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);typedef void (*h264_chroma_mc_func)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x, int y);#define DEF_OLD_QPEL(name)\void ff_put_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\void ff_put_no_rnd_ ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);\void ff_avg_        ## name (uint8_t *dst/*align width (8 or 16)*/, uint8_t *src/*align 1*/, int stride);DEF_OLD_QPEL(qpel16_mc11_old_c)DEF_OLD_QPEL(qpel16_mc31_old_c)DEF_OLD_QPEL(qpel16_mc12_old_c)DEF_OLD_QPEL(qpel16_mc32_old_c)DEF_OLD_QPEL(qpel16_mc13_old_c)DEF_OLD_QPEL(qpel16_mc33_old_c)DEF_OLD_QPEL(qpel8_mc11_old_c)DEF_OLD_QPEL(qpel8_mc31_old_c)DEF_OLD_QPEL(qpel8_mc12_old_c)DEF_OLD_QPEL(qpel8_mc32_old_c)DEF_OLD_QPEL(qpel8_mc13_old_c)DEF_OLD_QPEL(qpel8_mc33_old_c)#define CALL_2X_PIXELS(a, b, n)\static void a(uint8_t *block, const uint8_t *pixels, int line_size, int h){\    b(block  , pixels  , line_size, h);\    b(block+n, pixels+n, line_size, h);\}/* motion estimation */// h is limited to {width/2, width, 2*width} but never larger than 16 and never smaller then 2// allthough currently h<4 is not used as functions with width <8 are not used and neither implementedtypedef int (*me_cmp_func)(void /*MpegEncContext*/ *s, uint8_t *blk1/*align width (8 or 16)*/, uint8_t *blk2/*align 1*/, int line_size, int h)/* __attribute__ ((const))*/;/** * DSPContext. */typedef struct DSPContext {    /* pixel ops : interface with DCT */    void (*get_pixels)(DCTELEM *block/*align 16*/, const uint8_t *pixels/*align 8*/, int line_size);    void (*diff_pixels)(DCTELEM *block/*align 16*/, const uint8_t *s1/*align 8*/, const uint8_t *s2/*align 8*/, int stride);    void (*put_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);    void (*add_pixels_clamped)(const DCTELEM *block/*align 16*/, uint8_t *pixels/*align 8*/, int line_size);    /**     * translational global motion compensation.     */    void (*gmc1)(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int srcStride, int h, int x16, int y16, int rounder);    /**     * global motion compensation.     */    void (*gmc )(uint8_t *dst/*align 8*/, uint8_t *src/*align 1*/, int stride, int h, int ox, int oy,		    int dxx, int dxy, int dyx, int dyy, int shift, int r, int width, int height);    void (*clear_blocks)(DCTELEM *blocks/*align 16*/);    int (*pix_sum)(uint8_t * pix, int line_size);    int (*pix_norm1)(uint8_t * pix, int line_size);// 16x16 8x8 4x4 2x2 16x8 8x4 4x2 8x16 4x8 2x4        me_cmp_func sad[5]; /* identical to pix_absAxA except additional void * */    me_cmp_func sse[5];    me_cmp_func hadamard8_diff[5];    me_cmp_func dct_sad[5];    me_cmp_func quant_psnr[5];    me_cmp_func bit[5];    me_cmp_func rd[5];    me_cmp_func vsad[5];    me_cmp_func vsse[5];    me_cmp_func me_pre_cmp[5];    me_cmp_func me_cmp[5];    me_cmp_func me_sub_cmp[5];    me_cmp_func mb_cmp[5];    me_cmp_func ildct_cmp[5]; //only width 16 used    /**     * Halfpel motion compensation with rounding (a+b+1)>>1.     * this is an array[4][4] of motion compensation funcions for 4      * horizontal blocksizes (8,16) and the 4 halfpel positions<br>     * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]     * @param block destination where the result is stored     * @param pixels source     * @param line_size number of bytes in a horizontal line of block     * @param h height     */    op_pixels_func put_pixels_tab[4][4];    /**     * Halfpel motion compensation with rounding (a+b+1)>>1.     * This is an array[4][4] of motion compensation functions for 4      * horizontal blocksizes (8,16) and the 4 halfpel positions<br>     * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]     * @param block destination into which the result is averaged (a+b+1)>>1     * @param pixels source     * @param line_size number of bytes in a horizontal line of block     * @param h height     */    op_pixels_func avg_pixels_tab[4][4];    /**     * Halfpel motion compensation with no rounding (a+b)>>1.     * this is an array[2][4] of motion compensation funcions for 2      * horizontal blocksizes (8,16) and the 4 halfpel positions<br>     * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]     * @param block destination where the result is stored     * @param pixels source     * @param line_size number of bytes in a horizontal line of block     * @param h height     */    op_pixels_func put_no_rnd_pixels_tab[2][4];    /**     * Halfpel motion compensation with no rounding (a+b)>>1.     * this is an array[2][4] of motion compensation funcions for 2      * horizontal blocksizes (8,16) and the 4 halfpel positions<br>     * *pixels_tab[ 0->16xH 1->8xH ][ xhalfpel + 2*yhalfpel ]     * @param block destination into which the result is averaged (a+b)>>1     * @param pixels source     * @param line_size number of bytes in a horizontal line of block     * @param h height     */    op_pixels_func avg_no_rnd_pixels_tab[2][4];        void (*put_no_rnd_pixels_l2[2])(uint8_t *block/*align width (8 or 16)*/, const uint8_t *a/*align 1*/, const uint8_t *b/*align 1*/, int line_size, int h);        /**     * Thirdpel motion compensation with rounding (a+b+1)>>1.     * this is an array[12] of motion compensation funcions for the 9 thirdpel positions<br>     * *pixels_tab[ xthirdpel + 4*ythirdpel ]     * @param block destination where the result is stored     * @param pixels source     * @param line_size number of bytes in a horizontal line of block     * @param h height     */    tpel_mc_func put_tpel_pixels_tab[11]; //FIXME individual func ptr per width?    tpel_mc_func avg_tpel_pixels_tab[11]; //FIXME individual func ptr per width?    qpel_mc_func put_qpel_pixels_tab[2][16];    qpel_mc_func avg_qpel_pixels_tab[2][16];    qpel_mc_func put_no_rnd_qpel_pixels_tab[2][16];    qpel_mc_func avg_no_rnd_qpel_pixels_tab[2][16];    qpel_mc_func put_mspel_pixels_tab[8];        /**     * h264 Chram MC     */    h264_chroma_mc_func put_h264_chroma_pixels_tab[3];    h264_chroma_mc_func avg_h264_chroma_pixels_tab[3];    qpel_mc_func put_h264_qpel_pixels_tab[3][16];    qpel_mc_func avg_h264_qpel_pixels_tab[3][16];        me_cmp_func pix_abs[2][4];        /* huffyuv specific */    void (*add_bytes)(uint8_t *dst/*align 16*/, uint8_t *src/*align 16*/, int w);    void (*diff_bytes)(uint8_t *dst/*align 16*/, uint8_t *src1/*align 16*/, uint8_t *src2/*align 1*/,int w);    /**     * subtract huffyuv's variant of median prediction     * note, this might read from src1[-1], src2[-1]     */    void (*sub_hfyu_median_prediction)(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w, int *left, int *left_top);    void (*bswap_buf)(uint32_t *dst, uint32_t *src, int w);        void (*h263_v_loop_filter)(uint8_t *src, int stride, int qscale);    void (*h263_h_loop_filter)(uint8_t *src, int stride, int qscale);    /* (I)DCT */    void (*fdct)(DCTELEM *block/* align 16*/);    void (*fdct248)(DCTELEM *block/* align 16*/);        /* IDCT really*/    void (*idct)(DCTELEM *block/* align 16*/);        /**     * block -> idct -> clip to unsigned 8 bit -> dest.     * (-1392, 0, 0, ...) -> idct -> (-174, -174, ...) -> put -> (0, 0, ...)     * @param line_size size in bytes of a horizotal line of dest     */    void (*idct_put)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);        /**     * block -> idct -> add dest -> clip to unsigned 8 bit -> dest.     * @param line_size size in bytes of a horizotal line of dest     */    void (*idct_add)(uint8_t *dest/*align 8*/, int line_size, DCTELEM *block/*align 16*/);        /**     * idct input permutation.     * several optimized IDCTs need a permutated input (relative to the normal order of the reference     * IDCT)     * this permutation must be performed before the idct_put/add, note, normally this can be merged     * with the zigzag/alternate scan<br>     * an example to avoid confusion:     * - (->decode coeffs -> zigzag reorder -> dequant -> reference idct ->...)     * - (x -> referece dct -> reference idct -> x)     * - (x -> referece dct -> simple_mmx_perm = idct_permutation -> simple_idct_mmx -> x)     * - (->decode coeffs -> zigzag reorder -> simple_mmx_perm -> dequant -> simple_idct_mmx ->...)     */    uint8_t idct_permutation[64];    int idct_permutation_type;#define FF_NO_IDCT_PERM 1#define FF_LIBMPEG2_IDCT_PERM 2#define FF_SIMPLE_IDCT_PERM 3#define FF_TRANSPOSE_IDCT_PERM 4    int (*try_8x8basis)(int16_t rem[64], int16_t weight[64], int16_t basis[64], int scale);    void (*add_8x8basis)(int16_t rem[64], int16_t basis[64], int scale);#define BASIS_SHIFT 16#define RECON_SHIFT 6    /**     * This function handles any initialization for the VP3 DSP functions.     */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产不卡| 国产精品久久久久久一区二区三区 | 欧美日韩久久不卡| 大美女一区二区三区| 美女www一区二区| 亚洲一区二区欧美| 成人欧美一区二区三区黑人麻豆| 欧美成人欧美edvon| 欧美日韩精品系列| 色老头久久综合| av午夜一区麻豆| 成人综合婷婷国产精品久久免费| 久久精品国产精品青草| 亚洲图片一区二区| 亚洲精品日韩一| 国产精品电影一区二区三区| 久久精品视频在线看| 欧美xxxx在线观看| 欧美一卡2卡3卡4卡| 欧美日韩电影在线| 在线观看网站黄不卡| 色综合久久中文综合久久97| 成人在线视频一区二区| 国产乱一区二区| 国产麻豆精品久久一二三| 久久精品国产成人一区二区三区| 五月婷婷综合在线| 亚洲国产一区二区三区青草影视| 亚洲欧美日韩国产另类专区| 中文字幕在线观看不卡| 国产精品美女久久久久aⅴ | 午夜欧美视频在线观看| 国产精品不卡在线观看| 国产精品久久久久久久裸模| 欧美激情中文字幕| 中文字幕在线视频一区| 国产精品理伦片| 亚洲色图在线视频| 一区二区三区在线不卡| 亚洲一区视频在线观看视频| 亚洲国产精品视频| 日日摸夜夜添夜夜添精品视频| 午夜精品福利一区二区蜜股av| 亚洲mv在线观看| 免费在线观看一区| 狠狠色综合色综合网络| 国产乱妇无码大片在线观看| 成人一区二区三区| 色综合色狠狠综合色| 欧美午夜一区二区三区 | 亚洲精品在线一区二区| 久久久午夜电影| 国产欧美一区二区三区鸳鸯浴 | 日韩影院免费视频| 粉嫩在线一区二区三区视频| 国产乱人伦精品一区二区在线观看| 激情欧美一区二区三区在线观看| 国产精品一区二区视频| a在线欧美一区| 欧美怡红院视频| 91精品国产综合久久香蕉麻豆 | 欧美日韩aaaaa| 欧美mv和日韩mv国产网站| 国产精品无人区| 亚洲男人都懂的| 免费不卡在线视频| 成人动漫视频在线| 欧美日韩国产高清一区二区三区 | 色综合色狠狠天天综合色| 欧美日韩高清一区二区三区| 久久色成人在线| 一区二区三区在线观看国产| 美女久久久精品| av不卡在线观看| 欧美精三区欧美精三区| 国产欧美日韩亚州综合| 亚洲高清视频的网址| 国产乱淫av一区二区三区| 在线视频一区二区三区| 久久综合久久久久88| 最新不卡av在线| 欧美日韩国产a| 国产亚洲成aⅴ人片在线观看| 综合久久综合久久| 久久精品国产亚洲高清剧情介绍 | 91极品视觉盛宴| 日韩三级伦理片妻子的秘密按摩| 国产精品久久久久一区二区三区| 天堂在线一区二区| 91在线精品一区二区| 欧美成人高清电影在线| 亚洲精品老司机| 国产福利不卡视频| 91精品国产综合久久精品图片| 国产日韩精品一区二区浪潮av| 亚洲国产精品影院| 99久久精品情趣| 精品国产乱码久久久久久免费| 亚洲精品一二三区| 国产激情一区二区三区四区 | 欧美色精品在线视频| 亚洲国产精品国自产拍av| 日韩激情视频网站| 91精品办公室少妇高潮对白| 亚洲国产精品黑人久久久| 国内成+人亚洲+欧美+综合在线| 欧美色欧美亚洲另类二区| 亚洲日本中文字幕区| 国产精品一区二区视频| 欧美不卡一区二区| 日韩激情视频网站| 69av一区二区三区| 91亚洲精品乱码久久久久久蜜桃| 精品女同一区二区| 天天综合网 天天综合色| 日本韩国精品在线| 中文字幕中文在线不卡住| 粉嫩绯色av一区二区在线观看| 日韩女优av电影| 另类小说一区二区三区| 欧美一区二区视频在线观看2022| 亚洲国产成人av好男人在线观看| 日本乱人伦aⅴ精品| 亚洲男女一区二区三区| 本田岬高潮一区二区三区| 国产亚洲va综合人人澡精品| 国产美女视频91| 亚洲综合丁香婷婷六月香| 成人精品小蝌蚪| 亚洲国产高清在线观看视频| 成人午夜视频福利| 中文字幕不卡在线观看| 成人黄色网址在线观看| 国产女主播一区| av亚洲精华国产精华精| 亚洲色图色小说| 在线观看欧美黄色| 亚洲18色成人| 日韩欧美一区在线| 韩国理伦片一区二区三区在线播放 | 亚洲国产精品激情在线观看| 懂色中文一区二区在线播放| 国产嫩草影院久久久久| 成人动漫一区二区| 一区二区三区国产精华| 欧美在线看片a免费观看| 久久99这里只有精品| 亚洲精品在线免费播放| 日韩高清一区在线| 日韩欧美国产电影| 国产精品123| 亚洲欧美偷拍三级| 欧美日韩精品欧美日韩精品一| 日韩国产精品91| 欧美精品一区二区三区在线| 丰满少妇在线播放bd日韩电影| 亚洲三级小视频| 3d动漫精品啪啪1区2区免费| 久久精品国产秦先生| 国产精品精品国产色婷婷| 在线欧美一区二区| 久久精品二区亚洲w码| 欧美高清在线一区二区| 在线视频国内一区二区| 美女视频一区二区三区| 国产精品女上位| 欧美日本国产视频| 国产精选一区二区三区| 自拍偷拍国产精品| 日韩一区二区免费在线电影| 国产成人久久精品77777最新版本| 亚洲色图色小说| 精品国产百合女同互慰| 91蜜桃在线观看| 毛片av一区二区| 亚洲图片欧美一区| 精品视频在线免费看| 国产米奇在线777精品观看| 亚洲天堂免费看| 日韩欧美一级精品久久| 国产午夜精品一区二区三区四区| 日本高清不卡aⅴ免费网站| 经典三级视频一区| 有码一区二区三区| 国产亚洲一区二区三区在线观看| 色乱码一区二区三区88| 国产伦精一区二区三区| 亚洲国产一二三| 国产精品少妇自拍| 日韩视频免费直播| 色猫猫国产区一区二在线视频| 国产一区二三区| 亚洲成人动漫在线免费观看| 亚洲欧洲美洲综合色网| 精品1区2区在线观看| 欧美日韩和欧美的一区二区| 成人av在线网站| 国产专区综合网| 麻豆一区二区三| 婷婷开心激情综合|