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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? block_functions.c

?? tmn3.2編解碼源程序 Linux C環(huán)境編寫 文件齊全 壓縮包完整 試用正常 歡迎試用
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/************************************************************************ * *  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,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区精品在线播放| 欧美久久一二区| 一区在线观看视频| 日韩精品专区在线影院观看| 91麻豆精品国产91久久久久久 | 亚洲国产裸拍裸体视频在线观看乱了 | 一区二区三区精品| 亚洲欧洲成人精品av97| 亚洲视频1区2区| 亚洲欧美另类图片小说| 亚洲最大色网站| 香蕉影视欧美成人| 青青草97国产精品免费观看| 免费观看成人av| 久久国产精品色婷婷| 国产一区二区毛片| 成人午夜电影网站| 91一区在线观看| 欧美在线小视频| 日韩视频中午一区| 久久久亚洲精品石原莉奈| 国产精品视频观看| 亚洲精选在线视频| 五月婷婷久久丁香| 精品一区二区三区在线观看国产| 国产一区二区91| 97国产一区二区| 在线不卡一区二区| 2014亚洲片线观看视频免费| 国产精品女人毛片| 亚洲国产成人av好男人在线观看| 毛片不卡一区二区| 岛国精品在线播放| 欧美日韩国产一二三| 精品免费日韩av| 中文字幕中文字幕在线一区| 亚洲精品成人在线| 日本午夜精品一区二区三区电影 | 污片在线观看一区二区| 日韩和欧美一区二区三区| 国产乱人伦偷精品视频免下载| 国产丶欧美丶日本不卡视频| 色偷偷88欧美精品久久久| 欧美揉bbbbb揉bbbbb| 99免费精品在线| 欧美午夜视频网站| 欧美mv日韩mv| 国产精品传媒在线| 日本怡春院一区二区| 国产精品18久久久久| 91福利区一区二区三区| 91麻豆精品国产91久久久久久久久| 7777女厕盗摄久久久| 国产亚洲va综合人人澡精品| 日韩三级免费观看| 亚洲欧美日韩中文播放| 日韩av在线发布| 国产91在线|亚洲| 在线精品视频免费观看| 亚洲国产精品精华液ab| 一区二区三区**美女毛片| 韩国午夜理伦三级不卡影院| av成人免费在线观看| 亚洲精品一线二线三线无人区| 中文字幕精品一区二区精品绿巨人| 日日夜夜一区二区| 成人性生交大片免费看中文| 日韩一区二区三区免费看| 中文字幕欧美一| 国产在线视频一区二区三区| 色婷婷狠狠综合| 国产午夜精品一区二区| 亚洲国产日韩精品| 成人av网在线| 精品少妇一区二区三区在线视频| 亚洲综合免费观看高清完整版 | 91福利精品第一导航| 欧美一区二区三区在线观看视频| 国产精品人成在线观看免费 | 色婷婷综合久色| 精品久久一区二区三区| 日韩成人精品在线| 在线视频你懂得一区| 中文字幕免费不卡| 精品一区二区三区不卡| 538在线一区二区精品国产| 亚洲欧美综合网| 不卡在线观看av| 精品国产91久久久久久久妲己| 日韩精品电影在线观看| 日本久久一区二区三区| 18成人在线观看| 国产精品一线二线三线| 精品国产一区二区三区久久久蜜月| 亚洲免费视频中文字幕| 99精品欧美一区二区蜜桃免费 | 91麻豆精品国产91久久久使用方法 | 国产乱码精品1区2区3区| 欧美日韩一区二区三区视频| 亚洲六月丁香色婷婷综合久久| 国产精华液一区二区三区| 精品国产露脸精彩对白| 午夜精彩视频在线观看不卡| 欧美日韩aaaaaa| 亚洲精品成人精品456| 色香蕉成人二区免费| 欧美国产精品一区二区| 成人av在线一区二区三区| 国产亚洲一区字幕| 成人午夜av影视| 久久精品视频免费观看| 盗摄精品av一区二区三区| 国产亚洲短视频| 成人在线视频一区| 中文字幕va一区二区三区| av一本久道久久综合久久鬼色| 日本一区二区三区国色天香| 99久久综合精品| 国产精品国产精品国产专区不片| 99国产精品久久久久久久久久| 国产精品视频在线看| 在线精品视频小说1| 亚洲综合色区另类av| 欧美一二三区在线观看| 青青草原综合久久大伊人精品优势| 日韩精品一区二区三区视频在线观看| 丝袜a∨在线一区二区三区不卡| 日韩精品一区二| 狠狠久久亚洲欧美| 中文字幕成人在线观看| 91丨porny丨蝌蚪视频| 亚洲成av人片在线观看无码| 777亚洲妇女| 久久超级碰视频| 久久欧美一区二区| 色香色香欲天天天影视综合网| 一区二区三区视频在线看| 欧美视频精品在线观看| 青青草国产精品97视觉盛宴| 欧美第一区第二区| 国产麻豆精品视频| 一区二区中文字幕在线| 成人网在线播放| 亚洲精品欧美二区三区中文字幕| 91小视频在线| 另类小说视频一区二区| 国产精品久久久久影院亚瑟| 在线精品视频一区二区| 久久99精品国产麻豆婷婷| 中国av一区二区三区| 欧美日韩免费一区二区三区视频 | 欧美日本乱大交xxxxx| 成人av一区二区三区| 国产精品资源在线| 欧美丰满一区二区免费视频| 精品一区二区日韩| 依依成人精品视频| 精品入口麻豆88视频| 色婷婷av一区二区三区软件| 日韩不卡免费视频| 国产精品电影院| 欧美精品久久天天躁| jiyouzz国产精品久久| 亚洲成人综合在线| 中文字幕第一区| 欧美年轻男男videosbes| 成人精品国产一区二区4080| 亚洲精品国久久99热| 91精品国产91热久久久做人人| 国产成人av在线影院| 午夜精品视频在线观看| 中文字幕精品一区二区精品绿巨人| 欧美色综合网站| 99精品视频一区| 国内精品免费在线观看| 日韩黄色一级片| 国产精品美女久久久久aⅴ国产馆| 成人免费毛片片v| 国产精品色一区二区三区| 成人免费高清视频| 日韩激情一二三区| 亚洲一级二级三级在线免费观看| 精品91自产拍在线观看一区| 欧美日韩一区二区三区四区| 另类人妖一区二区av| 日韩一级免费观看| 日本伊人色综合网| 亚洲日本在线观看| 精品乱人伦小说| 欧美三级日韩三级| av午夜精品一区二区三区| 奇米综合一区二区三区精品视频| 亚洲精品欧美在线| 中文字幕欧美日本乱码一线二线 | 国产精品视频一二三区| 精品国产第一区二区三区观看体验 | 亚洲成人高清在线| 一区二区三区四区不卡在线| 中文字幕精品一区二区三区精品| 久久一区二区三区四区|