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

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

?? block_functions.c

?? tmn3.2編解碼源程序 Linux C環境編寫 文件齊全 壓縮包完整 試用正常 歡迎試用
?? C
?? 第 1 頁 / 共 2 頁
字號:
/************************************************************************ * *  coder.c, main coding engine of tmn (TMN encoder) * *  Copyright (C) 1997  University of BC, Canada * *  Contacts:  *  Michael Gallant                   <mikeg@ee.ubc.ca> *  Guy Cote                          <guyc@ee.ubc.ca> *  Berna Erol                        <bernae@ee.ubc.ca> * *  UBC Image Processing Laboratory   http://www.ee.ubc.ca/image *  2356 Main Mall                    tel.: +1 604 822 4051 *  Vancouver BC Canada V6T1Z4        fax.: +1 604 822 5949 * *  Copyright (C) 1995, 1996  Telenor R&D, Norway *   *  Contacts:  *  Robert Danielsen                  <Robert.Danielsen@nta.no> * *  Telenor Research and Development  http://www.nta.no/brukere/DVC/ *  P.O.Box 83                        tel.:   +47 63 84 84 00 *  N-2007 Kjeller, Norway            fax.:   +47 63 81 00 76 *   ************************************************************************//* * Disclaimer of Warranty * * These software programs are available to the user without any * license fee or royalty on an "as is" basis. The University of * British Columbia disclaims any and all warranties, whether * express, implied, or statuary, including any implied warranties * or merchantability or of fitness for a particular purpose.  In no * event shall the copyright-holder be liable for any incidental, * punitive, or consequential damages of any kind whatsoever arising * from the use of these programs. * * This disclaimer of warranty extends to the user of these programs * and user's customers, employees, agents, transferees, successors, * and assigns. * * The University of British Columbia does not represent or warrant * that the programs furnished hereunder are free of infringement of * any third-party patents. * * Commercial implementations of H.263, including shareware, are * subject to royalty fees to patent holders.  Many of these patents * are general enough such that they are unavoidable regardless of * implementation design. **//***************************************************************** * * Modified by Pat Mulroy, BT Labs to run syntax based arithmetic * coding.  SAC option, H.263 (Annex E). * *****************************************************************/#include"sim.h"/********************************************************************** * *	Name:        MB_Encode *	Description:	DCT  of Macroblocks * *	Input:        MB data struct *	Returns:	Pointer to coefficients  *	Side effects:	 * *	Date: 930128	Author: Robert.Danielsen@nta.no *      Date: 970915    Author: guyc@ee.ubc.ca *                              Quantization done separatly * **********************************************************************/int *MB_Encode(MB_Structure *mb_orig){  int        i, j, k, l, row, col;  int        fblock[64];  int        *coeff;  int        *coeff_ind;  if ((coeff = (int *)malloc(sizeof(int)*384)) == NULL) {    fprintf(stderr,"MB_Encode: Could not allocate space for coeff\n");    exit(-1);  }   coeff_ind = coeff;  for (k=0;k<16;k+=8) {    for (l=0;l<16;l+=8) {      for (i=k,row=0;row<64;i++,row+=8) {        for (j=l,col=0;col<8;j++,col++) {          *(fblock+row+col) = mb_orig->lum[i][j];        }      }      Dct(fblock,coeff_ind);      coeff_ind += 64;    }  }  for (i=0;i<8;i++) {    for (j=0;j<8;j++) {      *(fblock+i*8+j) = mb_orig->Cb[i][j];    }  }  Dct(fblock,coeff_ind);  coeff_ind += 64;  for (i=0;i<8;i++) {    for (j=0;j<8;j++) {      *(fblock+i*8+j) = mb_orig->Cr[i][j];    }  }  Dct(fblock,coeff_ind);    return coeff;}/********************************************************************** * *	Name:        MB_Decode *	Description:	Reconstruction of quantized DCT-coded Macroblocks * *	Input:        Quantized coefficients, MB data *        QP (1-31, 0 = no quant), MB info block *	Returns:	int (just 0) *	Side effects:	 * *	Date: 930128	Author: Robert.Danielsen@nta.no *      Date: 970915    Author: guyc@ee.ubc.ca *                              Deqantization done separatly  **********************************************************************/int MB_Decode(int *rcoeff, MB_Structure *mb_recon){  int	i, j, k, l, row, col;  int	*iblock;  int	*rcoeff_ind;  if ((iblock = (int *)malloc(sizeof(int)*64)) == NULL) {    fprintf(stderr,"MB_Coder: Could not allocate space for iblock\n");    exit(-1);  }  /* For control purposes */  /* Zero data */  for (i = 0; i < 16; i++)    for (j = 0; j < 16; j++)      mb_recon->lum[j][i] = 0;  for (i = 0; i < 8; i++)     for (j = 0; j < 8; j++) {      mb_recon->Cb[j][i] = 0;      mb_recon->Cr[j][i] = 0;    }  rcoeff_ind = rcoeff;  for (k=0;k<16;k+=8) {    for (l=0;l<16;l+=8) {#ifndef FASTIDCT      idctref(rcoeff_ind,iblock); #else      idct(rcoeff_ind,iblock); #endif      rcoeff_ind += 64;      for (i=k,row=0;row<64;i++,row+=8) {        for (j=l,col=0;col<8;j++,col++) {          mb_recon->lum[i][j] = *(iblock+row+col);        }      }    }  }#ifndef FASTIDCT  idctref(rcoeff_ind,iblock); #else  idct(rcoeff_ind,iblock); #endif  rcoeff_ind += 64;  for (i=0;i<8;i++) {    for (j=0;j<8;j++) {      mb_recon->Cb[i][j] = *(iblock+i*8+j);    }  }/*  printf("Cb.\n");  for (i=0;i<8;i++)   {    printf("%d %d %d %d %d %d %d %d\n", mb_recon->Cb[i][0],           mb_recon->Cb[i][1], mb_recon->Cb[i][2], mb_recon->Cb[i][3],           mb_recon->Cb[i][4], mb_recon->Cb[i][5], mb_recon->Cb[i][6],           mb_recon->Cb[i][7]);  }  printf("\n");*/#ifndef FASTIDCT  idctref(rcoeff_ind,iblock); #else  idct(rcoeff_ind,iblock); #endif  for (i=0;i<8;i++) {    for (j=0;j<8;j++) {      mb_recon->Cr[i][j] = *(iblock+i*8+j);    }  }  free(iblock);  return 0;}/********************************************************************** * *	Name:        FillLumBlock *	Description:        Fills the luminance of one block of PictImage *	 *	Input:        Position, pointer to PictImage, array to fill *	Returns:         *	Side effects:	fills array * *	Date: 930129	Author: Karl.Lillevold@nta.no * ***********************************************************************/void FillLumBlock( int x, int y, PictImage *image, MB_Structure *data){  int n;  register int m;  for (n = 0; n < MB_SIZE; n++)    for (m = 0; m < MB_SIZE; m++)      data->lum[n][m] =         (int)(*(image->lum + x+m + (y+n)*pels));  return;}/********************************************************************** * *	Name:        FillChromBlock *	Description:        Fills the chrominance of one block of PictImage *	 *	Input:        Position, pointer to PictImage, array to fill *	Returns:         *	Side effects:	fills array *                      128 subtracted from each * *	Date: 930129	Author: Karl.Lillevold@nta.no * ***********************************************************************/void FillChromBlock(int x_curr, int y_curr, PictImage *image,            MB_Structure *data){  int n;  register int m;  int x, y;  x = x_curr>>1;  y = y_curr>>1;  for (n = 0; n < (MB_SIZE>>1); n++)    for (m = 0; m < (MB_SIZE>>1); m++) {      data->Cr[n][m] =         (int)(*(image->Cr +x+m + (y+n)*cpels));      data->Cb[n][m] =         (int)(*(image->Cb +x+m + (y+n)*cpels));    }  return;}/********************************************************************** * *	Name:        ZeroMBlock *	Description:        Fills one MB with Zeros *	 *	Input:        MB_Structure to zero out *	Returns:         *	Side effects:	 * *	Date: 940829	Author: Karl.Lillevold@nta.no * ***********************************************************************/void ZeroMBlock(MB_Structure *data){  int n;  register int m;  for (n = 0; n < MB_SIZE; n++)    for (m = 0; m < MB_SIZE; m++)      data->lum[n][m] = 0;  for (n = 0; n < (MB_SIZE>>1); n++)    for (m = 0; m < (MB_SIZE>>1); m++) {      data->Cr[n][m] = 0;      data->Cb[n][m] = 0;    }  return;}/********************************************************************** * *	Name:        Clip *	Description:    clips recontructed data 0-255 *	 *	Input:	        pointer to recon. data structure *	Side effects:   data structure clipped * *	Date: 950718        Author: Karl.Lillevold@nta.no * ***********************************************************************/void Clip(MB_Structure *data){  int m,n;  for (n = 0; n < 16; n++) {    for (m = 0; m < 16; m++) {      data->lum[n][m] = mmin(255,mmax(0,data->lum[n][m]));    }  }  for (n = 0; n < 8; n++) {    for (m = 0; m < 8; m++) {      data->Cr[n][m] = mmin(255,mmax(0,data->Cr[n][m]));      data->Cb[n][m] = mmin(255,mmax(0,data->Cb[n][m]));    }  }}/********************************************************************** * *	Name:        LoadArea *	Description:    fills array with a square of image-data * *	Input:	       pointer to image and position, x and y size *	Returns:       pointer to area *	Side effects:  memory allocated to array * *	Date: 940203	Author: PGB *                      Mod: KOL * ***********************************************************************/unsigned char *LoadArea (unsigned char *im, int x, int y,                          int x_size, int y_size, int lx){  unsigned char *res = (unsigned char *) malloc (sizeof (char) * x_size * y_size);  unsigned char *in;  unsigned char *out;  int i = x_size;  int j = y_size;  in = im + (y * lx) + x;  out = res;  while (j--)  {    while (i--)      *out++ = *in++;    i = x_size;    in += lx - x_size;  };  return res;}/********************************************************************** * *	Name:        SAD_Macroblock *	Description:    fast way to find the SAD of one vector * *	Input:	        pointers to search_area and current block, *                      Min_F1/F2/FR *	Returns:        sad_f1/f2 *	Side effects: * *	Date: 940203        Author: PGB *                      Mod:    KOL * ***********************************************************************/int SAD_Macroblock (unsigned char *ii, unsigned char *act_block,                     int h_length, int Min_FRAME){  int i;  int sad = 0;  unsigned char *kk;  kk = act_block;  i = 16;  while (i--)  {    sad += (abs (*ii - *kk) + abs (*(ii + 1) - *(kk + 1))            + abs (*(ii + 2) - *(kk + 2)) + abs (*(ii + 3) - *(kk + 3))            + abs (*(ii + 4) - *(kk + 4)) + abs (*(ii + 5) - *(kk + 5))            + abs (*(ii + 6) - *(kk + 6)) + abs (*(ii + 7) - *(kk + 7))            + abs (*(ii + 8) - *(kk + 8)) + abs (*(ii + 9) - *(kk + 9))          + abs (*(ii + 10) - *(kk + 10)) + abs (*(ii + 11) - *(kk + 11))          + abs (*(ii + 12) - *(kk + 12)) + abs (*(ii + 13) - *(kk + 13))        + abs (*(ii + 14) - *(kk + 14)) + abs (*(ii + 15) - *(kk + 15)));    ii += h_length;    kk += 16;    if (sad > Min_FRAME)      return INT_MAX;  }  return sad;}int SAD_Block (unsigned char *ii, unsigned char *act_block,                int h_length, int min_sofar){  int i;  int sad = 0;  unsigned char *kk;  kk = act_block;  i = 8;  while (i--)  {    sad += (abs (*ii - *kk) + abs (*(ii + 1) - *(kk + 1))            + abs (*(ii + 2) - *(kk + 2)) + abs (*(ii + 3) - *(kk + 3))            + abs (*(ii + 4) - *(kk + 4)) + abs (*(ii + 5) - *(kk + 5))            + abs (*(ii + 6) - *(kk + 6)) + abs (*(ii + 7) - *(kk + 7)));    ii += h_length;    kk += 16;    if (sad > min_sofar)      return INT_MAX;  }  return sad;}int SAD_MB_Bidir (unsigned char *ii, unsigned char *aa, unsigned char *bb,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
波多野结衣91| 99国产欧美另类久久久精品| 成人免费在线播放视频| 欧美一级片在线观看| 91在线精品一区二区| 国产一区91精品张津瑜| 午夜欧美在线一二页| 亚洲婷婷在线视频| 欧美国产在线观看| 欧美一区二区三区日韩视频| 91极品视觉盛宴| 免费欧美在线视频| 天天综合日日夜夜精品| 欧美四级电影在线观看| 粉嫩av一区二区三区粉嫩| 蜜臀久久99精品久久久画质超高清 | 亚洲一区二区三区爽爽爽爽爽| 国产欧美日韩精品一区| 日韩免费看的电影| 7777女厕盗摄久久久| 亚洲国产视频直播| 亚洲蜜臀av乱码久久精品 | 国产精品综合在线视频| 国产91精品在线观看| 国产做a爰片久久毛片| 天天做天天摸天天爽国产一区| 中文字幕日韩精品一区| 欧美成人a∨高清免费观看| 色爱区综合激月婷婷| 国产成人午夜精品5599| 国产精一品亚洲二区在线视频| 亚洲成人福利片| 亚洲精品视频在线| 亚洲男人的天堂在线观看| 久久久久国产精品麻豆ai换脸 | 久久这里只有精品视频网| 9191国产精品| 色婷婷亚洲一区二区三区| 色噜噜狠狠成人中文综合| 北条麻妃国产九九精品视频| 蜜臀久久久久久久| 亚洲成人综合网站| 亚洲免费观看高清完整版在线观看| 国产精品区一区二区三| 欧美大胆人体bbbb| 国产日韩欧美综合在线| 中文字幕第一区综合| 国产日韩av一区二区| 精品日产卡一卡二卡麻豆| 久久综合久色欧美综合狠狠| 中文字幕乱码久久午夜不卡 | 99riav久久精品riav| 99re热这里只有精品免费视频| 91麻豆国产福利精品| 欧美丝袜第三区| 欧美一级二级三级蜜桃| 精品国一区二区三区| 久久精品人人爽人人爽| 日本成人超碰在线观看| 蜜桃av一区二区在线观看| 国产成人一级电影| 91麻豆高清视频| 欧美一级久久久| 国产校园另类小说区| 一区二区三区在线观看动漫| 日本欧美大码aⅴ在线播放| 国产一区视频网站| 色婷婷综合久久久久中文一区二区| 欧美三级日本三级少妇99| 精品国产乱码久久久久久夜甘婷婷| 国产日本一区二区| 亚洲成人免费视频| 国产一二三精品| 在线精品视频小说1| 欧美v日韩v国产v| 亚洲精品一二三| 久久91精品久久久久久秒播| 91在线观看高清| 日韩免费观看高清完整版 | 色先锋aa成人| 精品国产亚洲在线| 一区二区免费视频| 国产成人av电影在线| 精品视频一区三区九区| 国产欧美一区二区精品秋霞影院| 亚洲午夜私人影院| 成人午夜激情片| 欧美一区二区二区| 亚洲欧美电影一区二区| 久久69国产一区二区蜜臀| 在线观看中文字幕不卡| 26uuu国产一区二区三区| 亚洲无线码一区二区三区| 高清在线观看日韩| 日韩欧美在线123| 一区二区三区四区蜜桃| 国产美女娇喘av呻吟久久| 欧美伦理影视网| 自拍视频在线观看一区二区| 狠狠色丁香久久婷婷综| 欧美精品日日鲁夜夜添| 亚洲男人的天堂在线观看| 国产成人精品免费网站| 日韩欧美一级二级三级久久久| 亚洲精品国产精品乱码不99| 高清成人免费视频| 精品国产在天天线2019| 五月婷婷综合激情| 色哟哟日韩精品| 成人免费视频在线观看| 丁香婷婷综合激情五月色| 日韩精品一区在线观看| 日韩中文字幕区一区有砖一区| 欧美一区二区三区四区久久| 欧美视频精品在线观看| 亚洲人午夜精品天堂一二香蕉| 成人一区二区三区| 久久久久久毛片| 激情五月婷婷综合网| 精品欧美黑人一区二区三区| 日本人妖一区二区| 91精品视频网| 日韩福利电影在线| 91精品久久久久久久久99蜜臂| 亚洲午夜精品网| 欧美日韩一区二区三区在线看| 亚洲丝袜制服诱惑| 色八戒一区二区三区| 亚洲激情图片qvod| 欧美视频在线不卡| 亚洲va欧美va国产va天堂影院| 欧美图区在线视频| 婷婷综合久久一区二区三区| 欧美亚洲国产一区二区三区| 亚洲一二三专区| 欧美色图片你懂的| 日韩精品一二区| 91精品欧美综合在线观看最新| 天使萌一区二区三区免费观看| 555www色欧美视频| 久久er99精品| 久久精品视频一区二区| 成人午夜短视频| 亚洲乱码中文字幕| 欧美日韩小视频| 亚洲成av人片在www色猫咪| 欧美日韩国产首页在线观看| 午夜av区久久| 91精品国产麻豆| 免费视频一区二区| 久久综合久久综合亚洲| 成人小视频在线观看| 樱花影视一区二区| 一本大道久久a久久精品综合| 综合久久国产九一剧情麻豆| 色爱区综合激月婷婷| 日韩高清不卡一区二区三区| 欧美老年两性高潮| 精品一区二区三区欧美| 精品国产91洋老外米糕| 国产一区二区三区免费播放| 26uuuu精品一区二区| 国产成人高清在线| 国产精品国产成人国产三级| 欧美色精品在线视频| 久久国产福利国产秒拍| 中文字幕一区二区三区色视频| 欧美三级日本三级少妇99| 经典一区二区三区| 亚洲丝袜自拍清纯另类| 日韩欧美三级在线| aa级大片欧美| 麻豆久久一区二区| 最新日韩av在线| 日韩一区二区不卡| aaa欧美色吧激情视频| 丝袜国产日韩另类美女| 欧美国产亚洲另类动漫| 欧美日韩五月天| 国产成人av一区二区三区在线 | 亚洲乱码中文字幕| 精品精品欲导航| 欧美色视频在线| 高清久久久久久| 麻豆国产精品官网| 一区二区理论电影在线观看| 久久蜜桃av一区精品变态类天堂| 一本久久综合亚洲鲁鲁五月天| 美女一区二区久久| 亚洲欧美视频在线观看视频| 91精品婷婷国产综合久久| gogo大胆日本视频一区| 一个色在线综合| 久久精品夜色噜噜亚洲a∨| 欧美丰满少妇xxxxx高潮对白| www.亚洲精品| 国产91丝袜在线播放| 日本成人在线电影网| 亚洲午夜视频在线观看| 综合久久久久久|