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

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

?? dsputil.c

?? 杜比AC-3編碼解碼器(參考程序)
?? C
字號:
/*
 * DSP utils
 * Copyright (c) 2000 Gerard Lantau.
 *
 * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#include <stdlib.h>
#include <stdio.h>
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"

#define avg2(a,b) ((a+b+1)>>1)
#define avg4(a,b,c,d) ((a+b+c+d+2)>>2)

static UINT8 cropTbl[256 + 2 * MAX_NEG_CROP];
UINT32 squareTbl[512];

void dsputil_init(void)
{
    int i;

    for(i=0;i<256;i++) cropTbl[i + MAX_NEG_CROP] = i;
    for(i=0;i<MAX_NEG_CROP;i++) {
        cropTbl[i] = 0;
        cropTbl[i + MAX_NEG_CROP + 256] = 255;
    }

    for(i=0;i<512;i++) {
        squareTbl[i] = (i - 256) * (i - 256);
    }
}

void get_pixels(DCTELEM *block, const UINT8 *pixels, int line_size)
{
    DCTELEM *p;
    const UINT8 *pix;
    int i;

    /* read the pixels */
    p = block;
    pix = pixels;
    for(i=0;i<8;i++) {
        p[0] = pix[0];
        p[1] = pix[1];
        p[2] = pix[2];
        p[3] = pix[3];
        p[4] = pix[4];
        p[5] = pix[5];
        p[6] = pix[6];
        p[7] = pix[7];
        pix += line_size;
        p += 8;
    }
}

void put_pixels(const DCTELEM *block, UINT8 *pixels, int line_size)
{
    const DCTELEM *p;
    UINT8 *pix;
    int i;
    UINT8 *cm = cropTbl + MAX_NEG_CROP;
    
    /* read the pixels */
    p = block;
    pix = pixels;
    for(i=0;i<8;i++) {
        pix[0] = cm[p[0]];
        pix[1] = cm[p[1]];
        pix[2] = cm[p[2]];
        pix[3] = cm[p[3]];
        pix[4] = cm[p[4]];
        pix[5] = cm[p[5]];
        pix[6] = cm[p[6]];
        pix[7] = cm[p[7]];
        pix += line_size;
        p += 8;
    }
}

#define PIXOP(OPNAME, OP)                                                                \
                                                                                         \
static void OPNAME ## _pixels(DCTELEM *block, const UINT8 *pixels, int line_size)        \
{                                                                                        \
    DCTELEM *p;                                                                          \
    const UINT8 *pix;                                                                    \
    int i;                                                                               \
                                                                                         \
    p = block;                                                                           \
    pix = pixels;                                                                        \
    for(i=0;i<8;i++) {                                                                   \
        p[0] OP pix[0];                                                                  \
        p[1] OP pix[1];                                                                  \
        p[2] OP pix[2];                                                                  \
        p[3] OP pix[3];                                                                  \
        p[4] OP pix[4];                                                                  \
        p[5] OP pix[5];                                                                  \
        p[6] OP pix[6];                                                                  \
        p[7] OP pix[7];                                                                  \
        pix += line_size;                                                                \
        p += 8;                                                                          \
    }                                                                                    \
}                                                                                        \
                                                                                         \
static void OPNAME ## _pixels_x2(DCTELEM *block, const UINT8 *pixels, int line_size)     \
{                                                                                        \
    DCTELEM *p;                                                                          \
    const UINT8 *pix;                                                                    \
    int i;                                                                               \
                                                                                         \
    p = block;                                                                           \
    pix = pixels;                                                                        \
    for(i=0;i<8;i++) {                                                                   \
        p[0] OP avg2(pix[0], pix[1]);                                                    \
        p[1] OP avg2(pix[1], pix[2]);                                                    \
        p[2] OP avg2(pix[2], pix[3]);                                                    \
        p[3] OP avg2(pix[3], pix[4]);                                                    \
        p[4] OP avg2(pix[4], pix[5]);                                                    \
        p[5] OP avg2(pix[5], pix[6]);                                                    \
        p[6] OP avg2(pix[6], pix[7]);                                                    \
        p[7] OP avg2(pix[7], pix[8]);                                                    \
        pix += line_size;                                                                \
        p += 8;                                                                          \
    }                                                                                    \
}                                                                                        \
                                                                                         \
static void OPNAME ## _pixels_y2(DCTELEM *block, const UINT8 *pixels, int line_size)     \
{                                                                                        \
    DCTELEM *p;                                                                          \
    const UINT8 *pix;                                                                    \
    const UINT8 *pix1;                                                                   \
    int i;                                                                               \
                                                                                         \
    p = block;                                                                           \
    pix = pixels;                                                                        \
    pix1 = pixels + line_size;                                                           \
    for(i=0;i<8;i++) {                                                                   \
        p[0] OP avg2(pix[0], pix1[0]);                                                   \
        p[1] OP avg2(pix[1], pix1[1]);                                                   \
        p[2] OP avg2(pix[2], pix1[2]);                                                   \
        p[3] OP avg2(pix[3], pix1[3]);                                                   \
        p[4] OP avg2(pix[4], pix1[4]);                                                   \
        p[5] OP avg2(pix[5], pix1[5]);                                                   \
        p[6] OP avg2(pix[6], pix1[6]);                                                   \
        p[7] OP avg2(pix[7], pix1[7]);                                                   \
        pix += line_size;                                                                \
        pix1 += line_size;                                                               \
        p += 8;                                                                          \
    }                                                                                    \
}                                                                                        \
                                                                                         \
static void OPNAME ## _pixels_xy2(DCTELEM *block, const UINT8 *pixels, int line_size)    \
{                                                                                        \
    DCTELEM *p;                                                                          \
    const UINT8 *pix;                                                                    \
    const UINT8 *pix1;                                                                   \
    int i;                                                                               \
                                                                                         \
    p = block;                                                                           \
    pix = pixels;                                                                        \
    pix1 = pixels + line_size;                                                           \
    for(i=0;i<8;i++) {                                                                   \
        p[0] OP avg4(pix[0], pix[1], pix1[0], pix1[1]);                                  \
        p[1] OP avg4(pix[1], pix[2], pix1[1], pix1[2]);                                  \
        p[2] OP avg4(pix[2], pix[3], pix1[2], pix1[3]);                                  \
        p[3] OP avg4(pix[3], pix[4], pix1[3], pix1[4]);                                  \
        p[4] OP avg4(pix[4], pix[5], pix1[4], pix1[5]);                                  \
        p[5] OP avg4(pix[5], pix[6], pix1[5], pix1[6]);                                  \
        p[6] OP avg4(pix[6], pix[7], pix1[6], pix1[7]);                                  \
        p[7] OP avg4(pix[7], pix[8], pix1[7], pix1[8]);                                  \
        pix += line_size;                                                                \
        pix1 += line_size;                                                               \
        p += 8;                                                                          \
    }                                                                                    \
}                                                                                        \
                                                                                         \
void (*OPNAME ## _pixels_tab[4])(DCTELEM *block, const UINT8 *pixels, int line_size) = { \
    OPNAME ## _pixels,                                                                   \
    OPNAME ## _pixels_x2,                                                                \
    OPNAME ## _pixels_y2,                                                                \
    OPNAME ## _pixels_xy2,                                                               \
};


PIXOP(add, +=)

PIXOP(sub, -=)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美区一区二区三区| 99re视频精品| 精品久久五月天| 久久久久久久综合色一本| 国产成人自拍高清视频在线免费播放| 91一区二区三区在线观看| 亚洲免费观看在线视频| 91国内精品野花午夜精品| 午夜激情综合网| 久久久久久久久久久久久久久99 | 日韩你懂的在线观看| 蜜乳av一区二区| 国产欧美日韩精品在线| 久久精品久久精品| 国产亚洲精品7777| 一本一道综合狠狠老| 天堂va蜜桃一区二区三区| 久久精品人人做人人爽人人| 日本不卡不码高清免费观看| 久久久国产精品不卡| 91视频免费看| 日本在线不卡视频| 国产欧美一区二区精品秋霞影院| 蜜桃一区二区三区四区| 久久久精品免费观看| 一本色道**综合亚洲精品蜜桃冫| 国产精品蜜臀av| 欧美影院一区二区| 看电视剧不卡顿的网站| 亚洲欧洲在线观看av| 欧美一级高清片在线观看| 成人v精品蜜桃久久一区| 日韩专区在线视频| 亚洲私人黄色宅男| 久久你懂得1024| 欧美日韩亚洲不卡| 99久久免费国产| 国产一区二区三区黄视频| 久久久99精品免费观看| 欧美日韩激情一区二区| 成人免费av网站| 激情六月婷婷综合| 亚洲第一电影网| 中文字幕在线不卡国产视频| 欧美电影精品一区二区| 欧美性极品少妇| 成人高清免费观看| 一区二区三区中文字幕在线观看| 欧美少妇bbb| 99九九99九九九视频精品| 毛片av一区二区三区| 亚洲午夜三级在线| 日韩一区二区在线观看| 色诱亚洲精品久久久久久| 国产精品一区二区三区网站| 捆绑变态av一区二区三区| 午夜激情久久久| 日韩欧美国产1| 欧美巨大另类极品videosbest | 亚洲国产电影在线观看| 日韩欧美不卡在线观看视频| 在线播放国产精品二区一二区四区| 日韩av中文字幕一区二区三区| 精品日韩在线观看| 在线播放一区二区三区| 欧美日韩三级视频| 欧美少妇xxx| 欧美日韩视频在线观看一区二区三区 | 韩国精品一区二区| 美女脱光内衣内裤视频久久网站 | 国产精品国产精品国产专区不蜜 | 色视频欧美一区二区三区| 午夜视频一区在线观看| 亚洲妇女屁股眼交7| 精品国产一区二区精华| 制服视频三区第一页精品| 国产 日韩 欧美大片| 粉嫩13p一区二区三区| 成人小视频免费观看| 成人污视频在线观看| 99久久精品国产毛片| 麻豆视频一区二区| 国产一区二区三区综合| 国产不卡免费视频| 成人成人成人在线视频| 91农村精品一区二区在线| 欧美主播一区二区三区| 欧美二区乱c少妇| 欧美不卡一二三| 中文一区二区在线观看| 1024亚洲合集| 五月天一区二区| 久草中文综合在线| 国产成人av一区二区三区在线观看| 日韩经典中文字幕一区| 久久超碰97人人做人人爱| 国产九色精品成人porny | 亚洲精品在线观看网站| 国产亚洲欧美激情| 亚洲欧美一区二区三区国产精品 | 久久久精品人体av艺术| 中文字幕av一区二区三区免费看| 欧美成人伊人久久综合网| 国产天堂亚洲国产碰碰| 自拍偷拍国产亚洲| 日本视频一区二区| 丁香六月综合激情| 国产伦精一区二区三区| 99久久精品国产观看| 欧美乱妇20p| 国产无人区一区二区三区| 久久久久久一二三区| 亚洲欧洲成人自拍| 日韩福利视频导航| 婷婷综合另类小说色区| 亚洲午夜电影在线| 国产自产2019最新不卡| 欧美亚洲国产一卡| www激情久久| 国产人伦精品一区二区| 亚洲福利一区二区| eeuss鲁片一区二区三区在线看| 成人国产免费视频| 日韩午夜在线播放| 一区二区三区中文在线观看| 精品亚洲国内自在自线福利| 在线这里只有精品| 国产日韩欧美一区二区三区综合| 国产午夜精品福利| 蜜臀av国产精品久久久久| 91丨九色丨尤物| 国产午夜精品一区二区| 日韩av午夜在线观看| 色天使色偷偷av一区二区| 欧美日韩在线播放| 专区另类欧美日韩| 国产精品99久久久久久久女警 | 午夜精彩视频在线观看不卡| av一区二区不卡| 久久综合资源网| 日韩av中文在线观看| 欧美伊人久久久久久久久影院| 精品视频全国免费看| 中文字幕视频一区二区三区久| 亚洲黄色av一区| 懂色一区二区三区免费观看| 91色九色蝌蚪| 国产精品视频一区二区三区不卡| 亚洲人成在线播放网站岛国| 亚洲高清视频在线| 韩国av一区二区三区在线观看| zzijzzij亚洲日本少妇熟睡| 欧美视频一区二区三区在线观看| 欧美不卡一区二区三区四区| 青青草97国产精品免费观看| 欧美日韩黄色影视| 一二三区精品视频| 91高清视频免费看| 亚洲精品免费在线| 91丨九色丨国产丨porny| 国产精品久线观看视频| 成人看片黄a免费看在线| 国产欧美一区二区三区沐欲| 国产精品一区二区三区乱码| 欧美日韩亚州综合| 视频精品一区二区| 欧美精品第1页| 欧美aaaaaa午夜精品| 日韩欧美在线不卡| 精品一区二区三区影院在线午夜| 一本大道久久a久久综合| 亚洲精品精品亚洲| 精品视频在线免费看| 视频一区二区三区在线| 成人sese在线| 玉米视频成人免费看| 欧美日韩精品一区二区在线播放| 欧美激情一区在线观看| 不卡视频在线看| 亚洲精品高清在线观看| 欧美日韩免费电影| 毛片av中文字幕一区二区| 国产亚洲精久久久久久| 99re热这里只有精品视频| 亚洲一卡二卡三卡四卡无卡久久| 成人动漫视频在线| 亚洲精品免费播放| 欧美一区二区三区视频在线| 国产精品一区二区视频| 亚洲男人的天堂在线aⅴ视频| 国产精品一二三| 亚洲美女在线一区| 欧美高清dvd| 国产1区2区3区精品美女| 亚洲高清不卡在线观看| 久久免费美女视频| 91视频精品在这里| 久久精品72免费观看| 亚洲日本韩国一区| 欧美大黄免费观看|