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

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

?? reduced.cpp

?? gaca源碼
?? CPP
字號:
/*****************************************************************************
 *
 *  XVID MPEG-4 VIDEO CODEC
 *   Reduced-Resolution utilities
 *
 *  Copyright(C) 2002 Pascal Massimino <skal@planet-d.net>
 *
 *  This file is part of XviD, a free MPEG-4 video encoder/decoder
 *
 *  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
 *
 *  Under section 8 of the GNU General Public License, the copyright
 *  holders of XVID explicitly forbid distribution in the following
 *  countries:
 *
 *    - Japan
 *    - United States of America
 *
 *  Linking XviD statically or dynamically with other modules is making a
 *  combined work based on XviD.  Thus, the terms and conditions of the
 *  GNU General Public License cover the whole combination.
 *
 *  As a special exception, the copyright holders of XviD give you
 *  permission to link XviD with independent modules that communicate with
 *  XviD solely through the VFW1.1 and DShow interfaces, regardless of the
 *  license terms of these independent modules, and to copy and distribute
 *  the resulting combined work under terms of your choice, provided that
 *  every copy of the combined work is accompanied by a complete copy of
 *  the source code of XviD (the version of XviD used to produce the
 *  combined work), being distributed under the terms of the GNU General
 *  Public License plus this exception.  An independent module is a module
 *  which is not derived from or based on XviD.
 *
 *  Note that people who make modified versions of XviD are not obligated
 *  to grant this special exception for their modified versions; it is
 *  their choice whether to do so.  The GNU General Public License gives
 *  permission to release a modified version without this exception; this
 *  exception also makes it possible to release a modified version which
 *  carries forward this exception.
 *
 * $Id: reduced.cpp,v 1.1.1.1 2005/07/13 14:36:16 jeanlf Exp $
 *
 ****************************************************************************/

#include "portab.h"
#include "global.h"
#include "reduced.h"

/*----------------------------------------------------------------------------
 * Upsampling (1/3/3/1) filter
 *--------------------------------------------------------------------------*/

#define ADD(dst,src)  (dst) = CLIP((dst)+(src), 0, 255)

inline void Filter_31(byte *Dst1, byte *Dst2, const int *Src1, const int *Src2){

    /* Src[] is assumed to be >=0. So we can use ">>2" instead of "/2" */
  int a = (3*Src1[0]+  Src2[0]+2) >> 2;
  int b = (  Src1[0]+3*Src2[0]+2) >> 2;
  Dst1[0] = CLIP(a, 0, 255);
  Dst2[0] = CLIP(b, 0, 255);
}

//----------------------------

inline void Filter_9331(byte *Dst1, byte *Dst2, const int *Src1, const int *Src2){

    /* Src[] is assumed to be >=0. So we can use ">>4" instead of "/16" */
  int a = (9*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 1*Src2[1] + 8) >> 4;
  int b = (3*Src1[0]+  9*Src1[1]+ 1*Src2[0] + 3*Src2[1] + 8) >> 4;
  int c = (3*Src1[0]+  1*Src1[1]+ 9*Src2[0] + 3*Src2[1] + 8) >> 4;
  int 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 copy_upsampled_8x8_16to8(byte *Dst, const int *Src, 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) {
      byte *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);
}

//----------------------------

inline void Filter_Add_31(byte *Dst1, byte *Dst2, const int *Src1, const int *Src2){

    /* Here, we must use "/4", since Src[] is in [-256, 255] */
  int a = (3*Src1[0]+  Src2[0] + 2) / 4;
  int b = (  Src1[0]+3*Src2[0] + 2) / 4;
  ADD(Dst1[0], a);
  ADD(Dst2[0], b);
}

//----------------------------

inline void Filter_Add_9331(byte *Dst1, byte *Dst2, const int *Src1, const int *Src2){

  int a = (9*Src1[0]+  3*Src1[1]+ 3*Src2[0] + 1*Src2[1] + 8) / 16;
  int b = (3*Src1[0]+  9*Src1[1]+ 1*Src2[0] + 3*Src2[1] + 8) / 16;
  int c = (3*Src1[0]+  1*Src1[1]+ 9*Src2[0] + 3*Src2[1] + 8) / 16;
  int 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 add_upsampled_8x8_16to8(byte *Dst, const int *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) {
      byte *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 hfilter_31(byte *Src1, byte *Src2, int Nb_Blks){

  Nb_Blks *= 8;
  while(Nb_Blks-->0) {
    byte a = ( 3*Src1[0] + 1*Src2[0] + 2 ) >> 2;
    byte b = ( 1*Src1[0] + 3*Src2[0] + 2 ) >> 2;
    *Src1++ = a;
    *Src2++ = b;
  }
}

//----------------------------

void vfilter_31(byte *Src1, byte *Src2, const int BpS, int Nb_Blks){
  Nb_Blks *= 8;
  while(Nb_Blks-->0) {
    byte a = ( 3*Src1[0] + 1*Src2[0] + 2 ) >> 2;
    byte b = ( 1*Src1[0] + 3*Src2[0] + 2 ) >> 2;
    *Src1 = a;
    *Src2 = b;
    Src1 += BpS;
    Src2 += BpS;
  }
}

//----------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频网| 日韩制服丝袜av| 精品国产亚洲一区二区三区在线观看| 一本色道亚洲精品aⅴ| 国产成人精品aa毛片| 九九精品一区二区| 麻豆精品蜜桃视频网站| 水野朝阳av一区二区三区| 五月激情丁香一区二区三区| 午夜精品一区二区三区三上悠亚| 亚洲一区在线免费观看| 夜夜嗨av一区二区三区| 亚洲男人天堂av网| 亚洲地区一二三色| 日韩国产一区二| 男人的j进女人的j一区| 老司机一区二区| 国产精品羞羞答答xxdd| 成人激情视频网站| 色悠久久久久综合欧美99| 欧美日韩一级二级| 日韩三级视频在线看| www国产亚洲精品久久麻豆| 亚洲国产高清aⅴ视频| 亚洲精品高清在线| 天天色图综合网| 黄网站免费久久| jvid福利写真一区二区三区| 在线观看国产一区二区| 正在播放一区二区| 一区精品在线播放| 五月天国产精品| 国产精品羞羞答答xxdd| 欧美综合欧美视频| 欧美不卡视频一区| 亚洲另类在线制服丝袜| 日韩黄色免费网站| 成人国产精品视频| 欧美精品第1页| 国产精品麻豆视频| 男女性色大片免费观看一区二区| k8久久久一区二区三区| 日韩欧美一级片| 一区二区三区加勒比av| 国产精品一区在线观看你懂的| 日本精品免费观看高清观看| 欧美不卡在线视频| 亚洲在线视频一区| 成人午夜av影视| 欧美一级片在线观看| 亚洲欧美一区二区三区孕妇| 国产一区二区在线视频| 欧美日韩在线一区二区| 欧美激情艳妇裸体舞| 免费人成在线不卡| 欧美一a一片一级一片| 日本一区二区成人| 国产在线视频一区二区| 91精品国产综合久久精品app | 亚洲精品成a人| 久久精品国产成人一区二区三区| 在线观看免费亚洲| 亚洲乱码国产乱码精品精98午夜 | 亚洲成a人v欧美综合天堂下载 | 韩国女主播一区| 3d动漫精品啪啪一区二区竹菊| 国产精品久久久久久久岛一牛影视| 日本欧美韩国一区三区| 欧美日免费三级在线| 亚洲激情成人在线| eeuss鲁片一区二区三区在线看| 国产午夜精品一区二区三区嫩草| 日韩黄色在线观看| 欧美老女人在线| 亚洲国产成人va在线观看天堂| 91在线porny国产在线看| 中文字幕一区二区不卡 | 亚洲午夜久久久久久久久久久| 成人免费av在线| 国产情人综合久久777777| 激情欧美一区二区| 精品国产1区二区| 国内精品国产成人| 精品国产一区二区三区久久久蜜月 | 日韩欧美在线一区二区三区| 天天色综合成人网| 欧美一区二区三区公司| 久久精品国内一区二区三区| 日韩免费在线观看| 国产iv一区二区三区| 国产精品欧美一级免费| 成人免费观看av| 中文字幕一区二| 色天天综合色天天久久| 亚洲成人动漫一区| 日韩一区二区三区视频| 国产精品一级在线| 综合网在线视频| 欧美日韩一区二区三区不卡| 亚洲高清在线精品| 欧美一级高清片| 国产91在线看| 一区二区三区欧美日| 欧美区一区二区三区| 国产在线看一区| 成人欧美一区二区三区视频网页| 在线视频一区二区三区| 日韩vs国产vs欧美| 久久久99久久| 在线视频一区二区免费| 激情久久五月天| 亚洲视频在线观看三级| 日韩午夜av一区| 99在线精品一区二区三区| 亚洲成a人片在线观看中文| 国产性色一区二区| 欧美日韩国产综合一区二区| 国产一区二区日韩精品| 亚洲自拍与偷拍| 久久青草国产手机看片福利盒子| 99re成人在线| 久久99精品久久久久久久久久久久 | 高清国产午夜精品久久久久久| 亚洲美女在线一区| 久久久不卡网国产精品二区| 欧美性猛交xxxxxx富婆| 粉嫩av亚洲一区二区图片| 日韩二区在线观看| 中文字幕人成不卡一区| 精品国产乱码久久久久久蜜臀| 欧美中文字幕不卡| 99视频热这里只有精品免费| 九九国产精品视频| 亚洲国产日韩在线一区模特| 国产精品久久久久影院色老大| 91精品国产一区二区| 91传媒视频在线播放| 国产69精品久久777的优势| 美国三级日本三级久久99| 亚洲第一福利视频在线| 一区二区在线观看av| 国产精品视频你懂的| 久久免费国产精品| 精品久久一区二区三区| 欧美一级欧美三级在线观看| 精品视频在线免费看| 色综合天天综合狠狠| 91啪亚洲精品| 99国产欧美另类久久久精品| 国产·精品毛片| 成人永久aaa| 丰满少妇久久久久久久| 国产成人久久精品77777最新版本| 国产一区二三区| 国产综合成人久久大片91| 九九在线精品视频| 国产一区三区三区| 国产乱码精品一区二区三区av| 国产在线一区观看| 国产在线精品一区二区三区不卡| 精品伊人久久久久7777人| 精品一区二区三区在线播放 | 美女mm1313爽爽久久久蜜臀| 免费高清不卡av| 久久成人免费网| 精彩视频一区二区三区| 国产精品伊人色| 成人黄色在线看| 色久综合一二码| 欧美日韩免费观看一区三区| 日韩一区二区三区电影在线观看 | 欧美三级欧美一级| 欧美日韩色综合| 日韩欧美国产电影| www国产精品av| 亚洲视频资源在线| 亚洲第一激情av| 国产美女主播视频一区| av亚洲精华国产精华精| 欧美亚洲综合网| 欧美精品一区二区三区在线 | 91麻豆精品国产自产在线观看一区| 91麻豆精品91久久久久同性| 2021国产精品久久精品| 国产精品久久久久久久久免费相片 | 91久久精品一区二区二区| 欧美唯美清纯偷拍| 欧美久久久久中文字幕| 精品国产a毛片| 日韩一区日韩二区| 日韩精品每日更新| 成人一区二区三区中文字幕| 欧美性生交片4| 久久色.com| 亚洲第一久久影院| 成人丝袜18视频在线观看| 欧美日韩一区视频| 26uuu精品一区二区三区四区在线| 国产精品人人做人人爽人人添 | 国产欧美视频在线观看|