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

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

?? pred.cpp

?? Netmeeting是Windows系統自帶的網上聊天軟件
?? CPP
字號:
////////////////////////////////////////////////////////////////////////////
//
//
//    Project     : VideoNet version 1.1.
//    Description : Peer to Peer Video Conferencing over the LAN.
//	  Author      :	Nagareshwar Y Talekar ( nsry2002@yahoo.co.in)
//    Date        : 15-6-2004.
//
//    I have converted origional fast h.263 encoder library from C to C++ 
//	  so that it can be integrated into any windows application easily.
//	  I have removed some of unnecessary codes/files from the
//	  fast h263 library.Also moved definitions and declarations
//	  in their proper .h and .cpp files.
//
//    File description : 
//    Name    : pred.cpp
//
//
/////////////////////////////////////////////////////////////////////////////

/************************************************* * libr263: fast H.263 encoder library * * Copyright (C) 1996, Roalt Aalmoes, Twente University * SPA multimedia group * * Based on Telenor TMN 1.6 encoder (Copyright (C) 1995, Telenor R&D) * created by Karl Lillevold  * * Author encoder: Roalt Aalmoes, <aalmoes@huygens.nl> *  * Date: 31-07-96 **************************************************/
#include "stdafx.h"#include "pred.h"
#include "mot_est.h"
MB_Structure *Predict_P(unsigned int *curr_image, unsigned int *prev_image,			unsigned int *prev_ipol, int x, int y, 			MotionVector *MV_ptr){  int m,n;  unsigned int curr[16][16];  int pred[16][16];  MotionVector *fr0;  int dx, dy;  int xmb, ymb;  MB_Structure *pred_error;  pred_error = (MB_Structure *)malloc(sizeof(MB_Structure));      xmb = x/MB_SIZE;  ymb = y/MB_SIZE;  fr0 = MV_ptr + ymb*Global::mbc + xmb;  /* Find MB in current image */#ifdef PRINT_DEBUG  fprintf(debugf,"FindMB(%d,%d,%p,%p)\n",x,y,curr_image->Y,curr);#endif  
  FindMB(x, y, curr_image,curr);  /* Find prediction based on half pel MV */  FindPred(x, y, fr0, prev_ipol, &pred[0][0]);  /* Do the actual prediction */  if (fr0->Mode == MODE_INTER) {    for (n = 0; n < MB_SIZE; n++)      for (m = 0; m < MB_SIZE; m++) 	pred_error->lum[n][m] = (int)(curr[n][m] - pred[n][m]);    dx = 2*fr0->x + fr0->x_half;    dy = 2*fr0->y + fr0->y_half;    dx = ( dx % 4 == 0 ? dx >> 1 : (dx>>1)|1 );    dy = ( dy % 4 == 0 ? dy >> 1 : (dy>>1)|1 );#ifdef PRINTDEBUG    fprintf(debugf,"DoPredChrom_P(%d,%d,%d,%d,%p,%p,%p)\n",x, y, dx, dy, curr_image, prev_image, pred_error);#endif     DoPredChrom_P(x, y, dx, dy, curr_image, prev_image, pred_error);  }  else    fprintf(stderr,"Illegal Mode in Predict_P (pred.c)\n");  return pred_error;}void DoPredChrom_P(int x_curr, int y_curr, int dx, int dy,		   unsigned int *curr, unsigned int *prev, 		   MB_Structure *pred_error){  int m,n;  int x, y, ofx, ofy, pel, lx;  int xint, yint;  int xh, yh;  lx = Global::pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;  if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;				/* prev+Global::vskip does not work directly... */	pel=*(prev+Global::vskip + ofx    + (ofy   )*lx);	pred_error->Cr[n][m] = 	  (int)(*(curr+Global::vskip + x+m + (y+n)*Global::cpels) - pel);	pel=*(prev+Global::uskip + ofx    + (ofy   )*lx);	pred_error->Cb[n][m] = 	  (int)(*(curr + Global::uskip + x+m + (y+n)*Global::cpels) - pel);      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip + ofx    + (ofy   )*lx)+	     *(prev+Global::vskip + ofx    + (ofy+yh)*lx) + 1)>>1;	pred_error->Cr[n][m] = 	  (int)(*(curr+Global::vskip + x+m + (y+n)*Global::cpels) - pel);	pel=(*(prev+Global::uskip + ofx    + (ofy   )*lx)+	     *(prev+Global::uskip + ofx    + (ofy+yh)*lx) + 1)>>1;	pred_error->Cb[n][m] = 	  (int)(*( curr+Global::uskip + x+m + (y+n)*Global::cpels) - pel);            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	pred_error->Cr[n][m] = 	  (int)(*(curr+Global::vskip + x+m + (y+n)*Global::cpels) - pel);	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	pred_error->Cb[n][m] = 	  (int)( *( curr+Global::uskip + x+m + (y+n)*Global::cpels) - pel);            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::vskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	pred_error->Cr[n][m] = 	  (int)(*(curr+Global::vskip + x+m + (y+n)*Global::cpels) - pel);	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::uskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	pred_error->Cb[n][m] = 	  (int)(*(curr+Global::uskip + x+m + (y+n)*Global::cpels) - pel);            }    }  }  return;}void FindPred(int x, int y, MotionVector *fr, unsigned int *prev, 	      int *pred){  int n;  int new_x, new_y;  int *prev_ptr;  new_x = 2*(x + fr->x) + fr->x_half;  new_y = 2*(y + fr->y) + fr->y_half;  prev_ptr =  (int *) prev + 2*new_y*Global::pels + new_x;  /* Fill pred. data */  for (n = 0; n < 16; n++) {    /* Interpolated data -> too bad it can't be done in longs... */      *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += 2;       *(pred++) = *(prev_ptr);      prev_ptr += Global::pels*4 - 30;  }  return;}MB_Structure *MB_Recon_P(unsigned int *prev_image, unsigned int *prev_ipol,			 MB_Structure *diff, int x_curr, int y_curr, 			 MotionVector *MV_ptr){  MB_Structure *recon_data = (MB_Structure *)malloc(sizeof(MB_Structure));  MotionVector *fr0;  int dx, dy;  fr0 = MV_ptr + (y_curr/MB_SIZE)*Global::mbc + (x_curr/MB_SIZE);  if (fr0->Mode == MODE_INTER) {      /* Inter 16x16 */    ReconLumBlock_P(x_curr,y_curr,fr0,prev_ipol,&diff->lum[0][0]);        dx = 2*fr0->x + fr0->x_half;    dy = 2*fr0->y + fr0->y_half;    dx = ( dx % 4 == 0 ? dx >> 1 : (dx>>1)|1 );    dy = ( dy % 4 == 0 ? dy >> 1 : (dy>>1)|1 );    ReconChromBlock_P(x_curr, y_curr, dx, dy, prev_image, diff);  }  memcpy(recon_data, diff, sizeof(MB_Structure));  return recon_data;}void ReconLumBlock_P(int x, int y, MotionVector *fr, 		     unsigned int *prev, int *data){  int m, n;  int x1, y1;  int *data_ptr = data;  unsigned int *prev_ptr;  x1 = 2*(x + fr->x) + fr->x_half;  y1 = 2*(y + fr->y) + fr->y_half;    prev_ptr = prev + x1 + y1*2*Global::pels;  for (n = 0; n < 16; n++) {    for (m = 0; m < 16; m++) {      *data_ptr++ += (int)(*prev_ptr);      prev_ptr += 2;    }    prev_ptr += 2*2*Global::pels - 32;  }  return;}void ReconChromBlock_P(int x_curr, int y_curr, int dx, int dy,		       unsigned int *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = Global::pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;      if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=*(prev+Global::vskip+ ofx    + (ofy   )*lx);	data->Cr[n][m] += pel;	pel=*(prev+Global::uskip + ofx    + (ofy   )*lx);	data->Cb[n][m] += pel;      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cr[n][m] += pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cb[n][m] += pel;            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cr[n][m] += pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cb[n][m] += pel;            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::vskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cr[n][m] += pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::uskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cb[n][m] += pel;            }    }  }  return;}void FindChromBlock_P(int x_curr, int y_curr, int dx, int dy,		      unsigned int *prev, MB_Structure *data){  int m,n;  int x, y, ofx, ofy, pel,lx;  int xint, yint;  int xh, yh;  lx = Global::pels/2;  x = x_curr>>1;  y = y_curr>>1;  xint = dx>>1;  xh = dx & 1;  yint = dy>>1;  yh = dy & 1;      if (!xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=*(prev+Global::vskip+ofx    + (ofy   )*lx);	data->Cr[n][m] = pel;	pel=*(prev+Global::uskip+ofx    + (ofy   )*lx);	data->Cb[n][m] = pel;      }    }  }  else if (!xh && yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cr[n][m] = pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx    + (ofy+yh)*lx) + 1)>>1;	data->Cb[n][m] = pel;            }    }  }  else if (xh && !yh) {    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cr[n][m] = pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx) + 1)>>1;	data->Cb[n][m] = pel;            }    }  }  else { /* xh && yh */    for (n = 0; n < 8; n++) {      for (m = 0; m < 8; m++) {	ofx = x + xint + m;	ofy = y + yint + n;	pel=(*(prev+Global::vskip+ofx    + (ofy   )*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::vskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::vskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cr[n][m] = pel;	pel=(*(prev+Global::uskip+ofx    + (ofy   )*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy   )*lx)+	     *(prev+Global::uskip+ofx    + (ofy+yh)*lx)+	     *(prev+Global::uskip+ofx+xh + (ofy+yh)*lx)+	     2)>>2;	data->Cb[n][m] = pel;            }    }  }  return;}int ChooseMode(unsigned int *curr, int x_pos, int y_pos, int min_SAD)
{
  int i,j;
  int MB_mean = 0, A = 0;  int y_off;  for (j = 0; j < MB_SIZE; j++) {    y_off = (y_pos + j) * Global::pels;    for (i = 0; i < MB_SIZE; i++) {      MB_mean += *(curr + x_pos + i + y_off);    }  }  MB_mean /= (MB_SIZE*MB_SIZE);  for (j = 0; j < MB_SIZE; j++) {    y_off = (y_pos + j) * Global::pels;    for (i = 0; i < MB_SIZE; i++) {      A += abs( *(curr + x_pos + i + y_off) - MB_mean );    }  }  if (A < (min_SAD - 500))     return MODE_INTRA;  else    return MODE_INTER;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一二三| 综合久久综合久久| 99久久免费视频.com| 丝袜美腿亚洲一区| 亚洲国产精品国自产拍av| 在线观看国产日韩| 国产精品99久久久久久久vr | 午夜精品福利视频网站| 欧美成人乱码一区二区三区| 91天堂素人约啪| 黄色小说综合网站| 亚洲成年人影院| 中文字幕一区日韩精品欧美| 精品剧情在线观看| 欧美日韩一区不卡| av成人老司机| 国产99精品国产| 麻豆精品一区二区av白丝在线| 自拍偷拍欧美精品| 国产欧美综合在线观看第十页| 日韩你懂的在线观看| 欧美自拍偷拍午夜视频| 懂色av一区二区在线播放| 免费在线看一区| 肉色丝袜一区二区| 亚洲免费观看视频| 国产精品久久看| 欧美国产综合色视频| 久久综合九色综合97婷婷| 欧美一卡二卡三卡| 欧美日韩二区三区| 欧美这里有精品| 色视频欧美一区二区三区| av资源网一区| av福利精品导航| 91一区二区在线| 91免费看`日韩一区二区| 久久99国产乱子伦精品免费| 天堂久久久久va久久久久| 亚洲午夜一二三区视频| 亚洲自拍偷拍欧美| 亚洲一区av在线| 亚洲狠狠爱一区二区三区| 亚洲在线一区二区三区| 亚洲一区二区黄色| 午夜精品久久久久久久久久| 亚洲va国产va欧美va观看| 亚洲国产视频直播| 五月天激情综合网| 日韩经典中文字幕一区| 午夜精品久久久久久久久久久| 午夜a成v人精品| 奇米综合一区二区三区精品视频| 婷婷六月综合网| 日韩黄色一级片| 极品少妇xxxx精品少妇| 久久国产精品第一页| 激情另类小说区图片区视频区| 韩国成人精品a∨在线观看| 国产一区二区三区在线观看免费视频 | 日韩欧美第一区| 精品国产精品一区二区夜夜嗨| 中文字幕一区二区三区在线不卡| 亚洲视频 欧洲视频| 夜夜嗨av一区二区三区四季av| 亚洲激情第一区| 日韩专区中文字幕一区二区| 精品一区二区免费看| 国产suv一区二区三区88区| 99re6这里只有精品视频在线观看| 91片在线免费观看| 欧美久久一二区| 久久久三级国产网站| 国产亚洲精品中文字幕| 亚洲日本va在线观看| 婷婷丁香激情综合| 国内一区二区在线| 91视频com| 日韩一区二区在线看| 久久久久久久一区| 尤物视频一区二区| 麻豆成人久久精品二区三区红| 粉嫩绯色av一区二区在线观看 | av欧美精品.com| 欧美在线短视频| 精品理论电影在线| 亚洲欧美电影院| 久草中文综合在线| 一本久久a久久精品亚洲| 91精品国产综合久久久蜜臀图片| 国产欧美精品国产国产专区| 亚洲一卡二卡三卡四卡无卡久久| 久久99精品国产.久久久久久| 日本二三区不卡| 久久一区二区视频| 亚洲精品乱码久久久久久| 免费成人在线观看| 99精品欧美一区二区三区小说| 欧美一区二区成人| 亚洲精品国产品国语在线app| 另类人妖一区二区av| 99精品欧美一区二区三区综合在线| 日韩美女主播在线视频一区二区三区 | 亚洲综合色成人| 国产精品12区| 欧美精品1区2区3区| 国产精品国产三级国产普通话99| 日本欧美一区二区三区| 91在线porny国产在线看| 日韩欧美不卡一区| 色视频欧美一区二区三区| 欧美成人精品二区三区99精品| 亚洲男同性恋视频| 国产成人亚洲综合a∨婷婷| 欧美人xxxx| 亚洲蜜臀av乱码久久精品| 国产精品乡下勾搭老头1| 日韩欧美精品在线| 亚洲国产wwwccc36天堂| 99精品视频一区| 亚洲国产精品精华液ab| 国产美女视频91| 欧美电影免费观看高清完整版在| 亚洲香肠在线观看| 99久久精品免费看| 中文字幕av一区二区三区高| 国内成人免费视频| 在线成人av网站| 亚洲国产精品尤物yw在线观看| 91视视频在线观看入口直接观看www | 久久久www免费人成精品| 午夜成人在线视频| 91传媒视频在线播放| 国产精品久久三区| 国产ts人妖一区二区| 国产日韩av一区| 激情五月激情综合网| 日本最新不卡在线| 欧美日韩免费电影| 亚洲一区二区三区影院| 91传媒视频在线播放| 亚洲精选视频在线| 成人美女在线观看| 国产蜜臀97一区二区三区| 国产高清视频一区| 久久奇米777| 国产九色精品成人porny | 777奇米成人网| 亚洲精品中文字幕乱码三区| 一本在线高清不卡dvd| 亚洲天堂久久久久久久| 91在线观看一区二区| 亚洲欧美日韩久久精品| 在线中文字幕一区| 午夜在线电影亚洲一区| 91精品国产乱码久久蜜臀| 久久国产麻豆精品| 久久久不卡网国产精品一区| 成人丝袜视频网| 国产精品乱人伦| 欧洲另类一二三四区| 亚洲成人av电影在线| 欧美一区二区三区免费观看视频| 亚洲va欧美va人人爽午夜| 日韩亚洲欧美一区| 国产精品一区免费视频| 欧美国产欧美综合| 色婷婷一区二区| 日韩av午夜在线观看| www日韩大片| 99在线精品一区二区三区| 亚洲午夜精品网| wwwwww.欧美系列| 成人av在线一区二区三区| 亚洲精品一二三四区| 666欧美在线视频| 国模冰冰炮一区二区| 国产精品久久久久久久浪潮网站| 色哟哟日韩精品| 免费观看30秒视频久久| 国产欧美日韩综合精品一区二区 | 欧美三级三级三级| 极品美女销魂一区二区三区| 亚洲精品自拍动漫在线| 日韩精品中文字幕一区| 成人ar影院免费观看视频| 日韩黄色小视频| 亚洲视频免费在线观看| 在线成人免费观看| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 久久99久国产精品黄毛片色诱| 国产精品网站在线| 911精品产国品一二三产区| 高潮精品一区videoshd| 日韩精品五月天| 亚洲精品国产无套在线观| 久久精品水蜜桃av综合天堂| 欧美高清www午色夜在线视频| 成人手机电影网| 奇米影视一区二区三区|