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

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

?? reduced.c

?? 這是一個壓縮解壓包,用C語言進行編程的,里面有詳細的源代碼.
?? C
字號:
/***************************************************************************** * *  XVID MPEG-4 VIDEO CODEC *   Reduced-Resolution utilities * *  Copyright(C) 2002 Pascal Massimino <skal@planet-d.net> * *  XviD 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-1307 USA * * $Id: reduced.c,v 1.4 2004/05/31 21:36:23 edgomez Exp $ * ****************************************************************************/#include "../portab.h"#include "../global.h"#include "reduced.h"/* function pointers */COPY_UPSAMPLED_8X8_16TO8 * copy_upsampled_8x8_16to8;ADD_UPSAMPLED_8X8_16TO8 * add_upsampled_8x8_16to8;VFILTER_31 * vfilter_31;HFILTER_31 * hfilter_31;FILTER_18X18_TO_8X8 * filter_18x18_to_8x8;FILTER_DIFF_18X18_TO_8X8 * filter_diff_18x18_to_8x8;/*---------------------------------------------------------------------------- * Upsampling (1/3/3/1) filter *--------------------------------------------------------------------------*/#define ADD(dst,src)  (dst) = CLIP((dst)+(src), 0, 255)static __inline void Filter_31(uint8_t *Dst1, uint8_t *Dst2,                             const int16_t *Src1, const int16_t *Src2){    /* Src[] is assumed to be >=0. So we can use ">>2" instead of "/2" */  int16_t a = (3*Src1[0]+  Src2[0]+2) >> 2;  int16_t b = (  Src1[0]+3*Src2[0]+2) >> 2;  Dst1[0] = CLIP(a, 0, 255);  Dst2[0] = CLIP(b, 0, 255);}static __inline void Filter_9331(uint8_t *Dst1, uint8_t *Dst2,                               const int16_t *Src1, const int16_t *Src2){    /* Src[] is assumed to be >=0. So we can use ">>4" instead of "/16" */  int16_t a = (9*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 1*Src2[1] + 8) >> 4;  int16_t b = (3*Src1[0]+  9*Src1[1]+ 1*Src2[0] + 3*Src2[1] + 8) >> 4;  int16_t c = (3*Src1[0]+  1*Src1[1]+ 9*Src2[0] + 3*Src2[1] + 8) >> 4;  int16_t d = (1*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 9*Src2[1] + 8) >> 4;  Dst1[0] = CLIP(a, 0, 255);  Dst1[1] = CLIP(b, 0, 255);  Dst2[0] = CLIP(c, 0, 255);  Dst2[1] = CLIP(d, 0, 255);}void xvid_Copy_Upsampled_8x8_16To8_C(uint8_t *Dst, const int16_t *Src, const int BpS){  int x, y;  Dst[0] = CLIP(Src[0], 0, 255);  for(x=0; x<7; ++x) Filter_31(Dst+2*x+1, Dst+2*x+2, Src+x, Src+x+1);  Dst[15] = CLIP(Src[7], 0, 255);  Dst += BpS;  for(y=0; y<7; ++y) {    uint8_t *const Dst2 = Dst + BpS;    Filter_31(Dst, Dst2, Src, Src+8);    for(x=0; x<7; ++x)      Filter_9331(Dst+2*x+1, Dst2+2*x+1, Src+x, Src+x+8);    Filter_31(Dst+15, Dst2+15, Src+7, Src+7+8);    Src += 8;    Dst += 2*BpS;  }  Dst[0] = CLIP(Src[0], 0, 255);  for(x=0; x<7; ++x) Filter_31(Dst+2*x+1, Dst+2*x+2, Src+x, Src+x+1);  Dst[15] = CLIP(Src[7], 0, 255);}static __inline void Filter_Add_31(uint8_t *Dst1, uint8_t *Dst2,                             const int16_t *Src1, const int16_t *Src2){    /* Here, we must use "/4", since Src[] is in [-256, 255] */  int16_t a = (3*Src1[0]+  Src2[0] + 2) / 4;  int16_t b = (  Src1[0]+3*Src2[0] + 2) / 4;  ADD(Dst1[0], a);  ADD(Dst2[0], b);}static __inline void Filter_Add_9331(uint8_t *Dst1, uint8_t *Dst2,                                   const int16_t *Src1, const int16_t *Src2){  int16_t a = (9*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 1*Src2[1] + 8) / 16;  int16_t b = (3*Src1[0]+  9*Src1[1]+ 1*Src2[0] + 3*Src2[1] + 8) / 16;  int16_t c = (3*Src1[0]+  1*Src1[1]+ 9*Src2[0] + 3*Src2[1] + 8) / 16;  int16_t d = (1*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 9*Src2[1] + 8) / 16;  ADD(Dst1[0], a);  ADD(Dst1[1], b);  ADD(Dst2[0], c);  ADD(Dst2[1], d);}void xvid_Add_Upsampled_8x8_16To8_C(uint8_t *Dst, const int16_t *Src, const int BpS){  int x, y;  ADD(Dst[0], Src[0]);  for(x=0; x<7; ++x) Filter_Add_31(Dst+2*x+1, Dst+2*x+2, Src+x, Src+x+1);  ADD(Dst[15], Src[7]);  Dst += BpS;  for(y=0; y<7; ++y) {    uint8_t *const Dst2 = Dst + BpS;    Filter_Add_31(Dst, Dst2, Src, Src+8);    for(x=0; x<7; ++x)      Filter_Add_9331(Dst+2*x+1, Dst2+2*x+1, Src+x, Src+x+8);    Filter_Add_31(Dst+15, Dst2+15, Src+7, Src+7+8);    Src += 8;    Dst += 2*BpS;  }  ADD(Dst[0], Src[0]);  for(x=0; x<7; ++x) Filter_Add_31(Dst+2*x+1, Dst+2*x+2, Src+x, Src+x+1);  ADD(Dst[15], Src[7]);}#undef ADD/*---------------------------------------------------------------------------- * horizontal and vertical deblocking *--------------------------------------------------------------------------*/void xvid_HFilter_31_C(uint8_t *Src1, uint8_t *Src2, int Nb_Blks){  Nb_Blks *= 8;  while(Nb_Blks-->0) {    uint8_t a = ( 3*Src1[0] + 1*Src2[0] + 2 ) >> 2;    uint8_t b = ( 1*Src1[0] + 3*Src2[0] + 2 ) >> 2;    *Src1++ = a;    *Src2++ = b;  }}void xvid_VFilter_31_C(uint8_t *Src1, uint8_t *Src2, const int BpS, int Nb_Blks){  Nb_Blks *= 8;  while(Nb_Blks-->0) {    uint8_t a = ( 3*Src1[0] + 1*Src2[0] + 2 ) >> 2;    uint8_t b = ( 1*Src1[0] + 3*Src2[0] + 2 ) >> 2;    *Src1 = a;    *Src2 = b;    Src1 += BpS;    Src2 += BpS;  }}/*---------------------------------------------------------------------------- * 16x16 -> 8x8  (1/3/3/1) downsampling * * Warning! These read 1 pixel outside of the input 16x16 block! *--------------------------------------------------------------------------*/void xvid_Filter_18x18_To_8x8_C(int16_t *Dst, const uint8_t *Src, const int BpS){  int16_t *T, Tmp[18*8];  int i, j;  T = Tmp;  Src -= BpS;  for(j=-1; j<17; j++) {    for(i=0; i<8; ++i)      T[i] = Src[2*i-1] + 3*Src[2*i+0] + 3*Src[2*i+1] + Src[2*i+2];    T += 8;    Src += BpS;  }  T = Tmp + 8;  for(j=0; j<8; j++) {    for(i=0; i<8; ++i)      Dst[i] = ( T[-8+i] + 3*T[0+i] + 3*T[8+i] + T[16+i] + 32 ) / 64;    Dst += 8;    T += 16;  }}void xvid_Filter_Diff_18x18_To_8x8_C(int16_t *Dst, const uint8_t *Src, const int BpS){  int16_t *T, Tmp[18*8];  int i, j;  T = Tmp;  Src -= BpS;  for(j=-1; j<17; j++) {    for(i=0; i<8; ++i)      T[i] = Src[2*i-1] + 3*Src[2*i+0] + 3*Src[2*i+1] + Src[2*i+2];    T += 8;    Src += BpS;  }  T = Tmp;  for(j=0; j<8; j++) {    for(i=0; i<8; ++i)      Dst[i] -= ( T[i] + 3*T[8+i] + 3*T[16+i] + T[24+i] + 32 ) / 64;    Dst += 8;    T += 16;  }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品高清在线| 国产在线视频一区二区| 久久国产剧场电影| 成人免费黄色在线| 这里是久久伊人| 亚洲人快播电影网| 国产精品99久久不卡二区| 欧美高清视频一二三区| 国产精品国产自产拍高清av| 丝袜诱惑制服诱惑色一区在线观看 | 日韩美女视频一区二区 | 亚洲欧美国产毛片在线| 国产一区二区影院| 欧美一区二区三区四区久久| 亚洲欧美日韩国产手机在线| 成人av电影免费观看| 国产女同互慰高潮91漫画| 美女www一区二区| 欧美美女一区二区三区| 亚洲精品福利视频网站| 99久久精品免费观看| 国产精品妹子av| 国产精品18久久久| 久久精品亚洲一区二区三区浴池 | 亚洲一区二区av在线| 91性感美女视频| 日韩一区在线播放| av不卡免费在线观看| 国产精品美女久久久久aⅴ国产馆| 久久精品999| 久久久久国产精品厨房| 激情图片小说一区| 久久亚区不卡日本| 国产精品资源在线| 国产精品美日韩| 91捆绑美女网站| 亚洲一区二区在线观看视频| 欧美喷水一区二区| 麻豆精品一二三| 久久青草欧美一区二区三区| 国产一区二区在线观看视频| 国产日韩精品一区二区浪潮av| 国产乱码精品一区二区三区av | 精品国产sm最大网站免费看| 国内精品伊人久久久久av影院| 欧美一级理论片| 韩国午夜理伦三级不卡影院| 久久久蜜臀国产一区二区| 不卡一卡二卡三乱码免费网站| 中文字幕视频一区| 欧美日韩一区成人| 日本视频一区二区三区| 精品久久国产老人久久综合| 国产精品亚洲成人| 一区二区三区在线观看国产| 欧美在线免费视屏| 久久电影网电视剧免费观看| 国产视频一区在线观看| 色哟哟亚洲精品| 日韩黄色在线观看| 日本一区二区三区在线不卡| 色屁屁一区二区| 麻豆久久久久久久| 国产精品免费av| 日韩一区二区在线看| 成人高清视频在线观看| 午夜欧美视频在线观看| 精品国产123| 91国偷自产一区二区三区成为亚洲经典| 亚洲一级在线观看| 久久精品视频在线看| 在线一区二区观看| 国产精品一区一区三区| 亚洲国产精品自拍| 国产欧美一区二区精品久导航 | 欧美性受极品xxxx喷水| 日本不卡一区二区| 亚洲日本丝袜连裤袜办公室| 91麻豆精品国产91久久久久久 | 在线视频中文字幕一区二区| 精品系列免费在线观看| 国产精品久久99| 日韩欧美一区二区视频| 91福利国产成人精品照片| 国产一区二区三区黄视频| 性久久久久久久| 亚洲欧洲三级电影| 久久久欧美精品sm网站| 欧美电影影音先锋| 一本大道av伊人久久综合| 国产精品一区在线| 日本女优在线视频一区二区| 一区二区三区在线视频观看| 久久精品一二三| 欧美一区二区三区四区高清| 欧美性生活一区| 99久久婷婷国产综合精品 | 日韩va欧美va亚洲va久久| 亚洲美女屁股眼交3| 国产欧美视频一区二区| 26uuu国产一区二区三区| 欧美日韩免费一区二区三区| 99re66热这里只有精品3直播 | 色综合久久综合| 国产成人av资源| 国产美女av一区二区三区| 日本午夜一区二区| 青青草成人在线观看| 水野朝阳av一区二区三区| 亚洲成人动漫在线免费观看| 亚洲与欧洲av电影| 一区二区三区久久久| 伊人婷婷欧美激情| 一区二区三区在线视频免费观看| 亚洲欧洲美洲综合色网| 中文字幕制服丝袜成人av| 国产精品网站导航| 中文字幕欧美激情一区| 中文字幕免费在线观看视频一区| 国产免费观看久久| 国产精品美女久久久久高潮| 中文字幕一区二区三区四区不卡 | 色菇凉天天综合网| 一本大道av一区二区在线播放| 日本丶国产丶欧美色综合| 色乱码一区二区三区88| 欧美午夜影院一区| 欧美日本一区二区| 精品三级av在线| 欧美极品xxx| 亚洲欧美激情插| 日韩一区欧美二区| 久久se精品一区精品二区| 国产成人精品一区二区三区网站观看| 成人午夜免费av| 欧美午夜在线一二页| 日韩一区二区三区电影在线观看| 欧美精品一区二区三区蜜臀| 久久亚洲免费视频| 国产精品超碰97尤物18| 一区二区三区四区在线播放 | 亚洲黄一区二区三区| 亚洲国产精品久久久久秋霞影院| 日韩二区在线观看| 国产精品亚洲第一| 欧洲人成人精品| 亚洲精品一区二区三区四区高清| 欧美激情艳妇裸体舞| 亚洲成人免费看| 国产精品一级在线| 欧美日韩色一区| 国产免费观看久久| 日日夜夜免费精品视频| 国产大陆亚洲精品国产| 欧美日韩一区不卡| 国产精品拍天天在线| 日韩精品免费视频人成| 国产99久久久久| 欧美一区二区三区不卡| 亚洲人成小说网站色在线 | 久久久99精品久久| 亚洲午夜久久久久中文字幕久| 国产精品综合在线视频| 欧美日韩在线直播| 国产精品久久久久久亚洲毛片| 日韩黄色小视频| 色94色欧美sute亚洲线路二| 久久女同性恋中文字幕| 日韩制服丝袜先锋影音| 日本韩国一区二区三区| 国产精品久久久久久久蜜臀| 久久er精品视频| 欧美蜜桃一区二区三区| 国产精品国模大尺度视频| 国产精品夜夜爽| 精品久久国产字幕高潮| 日韩av一区二区三区| 在线观看国产日韩| 中文字幕日韩av资源站| 成人午夜视频网站| 国产偷国产偷精品高清尤物| 久久成人免费日本黄色| 日韩精品一区二区三区四区| 性感美女久久精品| 欧美亚洲日本国产| 亚洲精品亚洲人成人网在线播放| 国产成人av电影在线| 26uuu另类欧美| 九九**精品视频免费播放| 欧美丰满嫩嫩电影| 亚洲第一激情av| 欧美日韩精品系列| 午夜亚洲福利老司机| 欧美性做爰猛烈叫床潮| 亚洲一区二区高清| 欧美日韩国产一级二级| 亚洲一区二区在线免费观看视频| 日本久久一区二区三区| 亚洲欧美日韩国产手机在线 | 久久久一区二区三区|