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

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

?? libr263.c

?? h.263 c編碼源碼。目錄下有input。qcif原始未壓縮文件
?? C
字號:
/************************************************* * 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 "sim.h"#include "huffman.h"/* static libr263.c prototypes */static void init_motion_detection(void);  static int Check8x8(unsigned int *orig, 			       unsigned int *recon, int pos);static int HasMoved(int call_time,  void *real, void *recon, int x, int y); int InitCompress(CParam *params){  pic = (Pict *)malloc(sizeof(Pict));  if(!pic) {    return -1;  }  pic->unrestricted_mv_mode = DEF_UMV_MODE;  pic->use_gobsync = DEF_INSERT_SYNC;  pic->PB = 0;  pic->TR = 0;  pic->QP_mean = 0.0;  if(params->format == CPARAM_QCIF) {    pels = QCIF_YWIDTH;    lines = QCIF_YHEIGHT;    cpels = QCIF_YWIDTH/2;    pic->source_format = SF_QCIF;  } else if (params->format == CPARAM_CIF) {    pels = CIF_YWIDTH;    lines = CIF_YHEIGHT;    cpels = CIF_YWIDTH/2;    pic->source_format = SF_CIF;  } else if (params->format == CPARAM_SQCIF) {    pels = SQCIF_YWIDTH;    lines = SQCIF_YHEIGHT;    cpels = SQCIF_YWIDTH/2;    pic->source_format = SF_SQCIF;  } else if (params->format == CPARAM_4CIF) {    pels = CIF4_YWIDTH;    lines = CIF4_YHEIGHT;    cpels = CIF4_YWIDTH/2;    pic->source_format = SF_4CIF;    } else if (params->format == CPARAM_16CIF) {    pels = CIF16_YWIDTH;    lines = CIF16_YHEIGHT;    cpels = CIF16_YWIDTH/2;    pic->source_format = SF_16CIF;  } else {    pels = params->pels;    lines = params->lines;    cpels = params->pels / 2;    pic->source_format = 0;	/* ILLEGAL H.263! Use it only for testing */  }    mbr = lines / MB_SIZE;  mbc = pels / MB_SIZE;  uskip = lines*pels;  vskip = uskip + lines*pels/4;  sizeof_frame = (vskip + lines*pels/4)*sizeof(int);  headerlength = DEF_HEADERLENGTH;  /* Initalize VLC_tables */  InitHuff();  mwinit();  /* Init motion detection */  init_motion_detection();#ifdef VERYFASTIDCT  init_idct();			/* Do this in case of VERYFASTIDCT */#elif STANDARDIDCT  init_idctref();		/* Do this in case of standard IDCT */#endif				/* Do nothing for FASTIDCT */  /* Set internal variables */  advanced = DEF_ADV_MODE;  mv_outside_frame = DEF_UMV_MODE || DEF_ADV_MODE;  long_vectors = DEF_UMV_MODE;  pb_frames = DEF_PBF_MODE;  search_p_frames = DEF_SPIRAL_SEARCH;  trace = DEF_WRITE_TRACE;  params->half_pixel_searchwindow = CPARAM_DEFAULT_SEARCHWINDOW;   params->inter = CPARAM_DEFAULT_INTER;  params->search_method = CPARAM_DEFAULT_SEARCH_METHOD;  params->advanced_method = CPARAM_DEFAULT_ADVANCED_METHOD;  params->Q_inter = CPARAM_DEFAULT_INTER_Q;  params->Q_intra = CPARAM_DEFAULT_INTRA_Q;  params->interpolated_lum = malloc(pels*lines*4*sizeof(int));  if(!params->interpolated_lum)    return -1;  params->recon = malloc(sizeof_frame);  if(!params->recon) {    free(params->interpolated_lum);    free(pic);    return -1;  }  return 0;}void SkipH263Frames(int frames_to_skip){  pic->TR += frames_to_skip % 256;}
int CompressToH263(CParam *params, Bits *bits){  if(!params->inter) {    CodeIntraH263(params, bits);  } else {    CodeInterH263(params, bits);  }  bits->header += zeroflush();  /* pictures shall be byte aligned */ // 填滿一個比特  pic->TR += 1 % 256; /* one means 30 fps */  return 0;}void CloseCompress(CParam *params){  mwcloseinit();  free(params->interpolated_lum);  free(params->recon);  free(pic);  return;}/* Motion Detection part */static int global_mb_threshold;static int global_pixel_threshold;/* This array is computed for QCIF  movement_detection[] = {0, 354, 528, 177,                          3, 353, 531, 178,		          352, 179, 530, 1,		          355, 176, 2, 529 };			  *//* This array determines the order in a pixel is checked per 4x4 block *//* {x, y} within [0..3] */

/*運動坐標*/static unsigned int movement_coords[16][2] = { {0,0}, {2,2},{0,3},{1,1},		               		       {3,0},{1,2},{3,3},{2,1},				               {0,2},{3,1},{2,3},{1,0},				               {3,2},{0,1},{2,0},{1,3} };static int movement_detection[16][4];//??????????????????????void init_motion_detection(){  unsigned int counter, pos;  for(counter = 0; counter < 16; counter++) {    pos = movement_coords[counter][0] + movement_coords[counter][1]*pels;    movement_detection[counter][0] = pos;    movement_detection[counter][1] = pos + 4;    movement_detection[counter][2] = pos + pels*4;    movement_detection[counter][3] = pos + pels*4 + 4;  }  return;}

// 檢查8*8塊,在原始數據和重建數據是否有大的差距,每4*4塊檢測, 返回差距值,為0到4
// 移動情況,返回值,0到4間static  int Check8x8(unsigned int *orig, unsigned int *recon, int pos){  int value, index;  register int thres = global_pixel_threshold;//門限在findmotion函數中, 設定為2  value = 0;  /* Mark pixel changed when lum value differs more than "thres" */  index = movement_detection[pos][0];  value += abs(*(orig + index) - *(recon+index)) > thres;  index = movement_detection[pos][1];  value += abs(*(orig + index) - *(recon+index)) > thres;  index = movement_detection[pos][2];				  value += abs(*(orig + index) - *(recon+index)) > thres;  index = movement_detection[pos][3];			  value += abs(*(orig + index) - *(recon+index)) > thres;  return value;}

//16*16宏塊, 判斷real和recon中有無大的差距,  有1,無0 
// real當前宏塊數據,recon 重建宏塊static int HasMoved(int call_time,  void *real,	     void *recon, int x, int y){  int offset1;  unsigned int *MB_orig;  unsigned int *MB_recon;  int position;  int value = 0;  offset1 = (y*pels+x)*MB_SIZE;  position = call_time;   //   /* Integration of 8x8 and 4x4 check might improve performance,      but is not done here */
  //檢測8*8塊,原始和重建數據是否有大的差距  MB_orig = (unsigned int *) real + offset1;  MB_recon = (unsigned int *) recon + offset1;  value += Check8x8(MB_orig, MB_recon, position); // 返回值為0到4  MB_orig += 8; MB_recon += 8;  value += Check8x8(MB_orig, MB_recon, position);   MB_orig += 8*pels - 8; MB_recon += 8*pels - 8;  value += Check8x8(MB_orig, MB_recon, position);  MB_orig += 8; MB_recon += 8;  value += Check8x8(MB_orig, MB_recon, position);  return value > global_mb_threshold;	    //門限在findmotino函數中定為2  /* Mark MB changed if more than "global_mb_threshold" pixels are changed */}

// 判斷原始數據和重建數據差別,返回差距值,// mb_threshold宏塊門限,y亮度4個8*8塊中move了幾個,  pixel_threshold象素門限,8*8塊中四個代表象素中move了幾個int FindMotion(CParam *params, int mb_threshold, int pixel_threshold){  static int call_time = 0; // 定義為0,檢查(0,0),(9,3),(3,0),(3,3)四個位置  int j,i;  int counter = 0;  global_mb_threshold = mb_threshold;  global_pixel_threshold = pixel_threshold;  for(j = 0; j < mbr; j++) {    for(i = 0; i < mbc; i++) {
		                     //EncodeThisBlock ,判斷宏塊原始數據和重建數據是否差距大,是1,否0       *(params->EncodeThisBlock + j*mbc + i) = HasMoved(call_time, params->data, params->recon, i,j);       counter += *(params->EncodeThisBlock +j*mbc + i);   // 個數    }  }  call_time = (call_time + 1) % 16;   return counter;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲小说春色综合另类电影| 一区二区中文字幕在线| 欧美亚洲高清一区| 91视频精品在这里| 99精品一区二区| 99久久精品免费| 成人免费观看男女羞羞视频| 成人精品视频.| 99久久久久久| 日本乱人伦aⅴ精品| 91久久奴性调教| 91福利在线看| 欧美精品乱码久久久久久| 欧美主播一区二区三区| 欧美精品在线观看播放| 国产精品国产三级国产aⅴ中文| 久久精品在这里| 国产精品国产三级国产aⅴ无密码| 国产精品欧美综合在线| 亚洲三级小视频| 亚洲成av人片在线观看无码| 青娱乐精品视频| 粉嫩蜜臀av国产精品网站| fc2成人免费人成在线观看播放| 一本大道久久a久久综合| 欧美日韩在线精品一区二区三区激情| 在线观看91精品国产麻豆| 亚洲精品一区二区三区四区高清| 久久精品一区蜜桃臀影院| 亚洲激情自拍视频| 视频一区二区三区入口| 国产一区二区三区四| 91麻豆免费观看| 日韩欧美在线123| 国产精品网站在线观看| 午夜av电影一区| 国产99精品在线观看| 欧美日韩一区二区在线视频| 欧美一级欧美三级在线观看| 中文字幕一区二区三区在线播放 | 91欧美一区二区| 日韩欧美中文字幕一区| 日韩美女精品在线| 久久99国产精品久久99 | 欧美电影免费提供在线观看| 国产亚洲精品超碰| 亚洲午夜在线观看视频在线| 国产成人免费在线观看| 91精品国产综合久久精品| 中文字幕一区二区三区色视频| 日韩高清不卡一区二区三区| 99精品视频在线播放观看| 欧美成va人片在线观看| 一区二区三区欧美| 国产成人精品免费网站| 欧美一级一级性生活免费录像| 亚洲免费资源在线播放| 国产高清在线精品| 精品免费国产二区三区| 亚洲成人一二三| 色婷婷av一区二区三区gif | 亚洲日本va在线观看| 韩国精品在线观看| 日韩欧美成人午夜| 婷婷丁香激情综合| 欧美日韩在线观看一区二区 | 欧美激情资源网| 精品一区二区三区免费播放| 911精品国产一区二区在线| 亚洲欧美视频在线观看| www.欧美精品一二区| 首页综合国产亚洲丝袜| 日本精品视频一区二区| 亚洲桃色在线一区| 成人午夜电影网站| 中文字幕第一区二区| 国产成人日日夜夜| 中文字幕不卡三区| 99精品偷自拍| 亚洲精品国产成人久久av盗摄| 99久久精品免费观看| 亚洲精品第一国产综合野| 不卡影院免费观看| 亚洲欧美一区二区三区极速播放| av中文字幕一区| 亚洲精品中文在线| 欧美日韩大陆在线| 日本欧美在线观看| 久久久久久久久久久99999| 国产另类ts人妖一区二区| 久久综合久久综合九色| 成人一区在线看| 亚洲精品国产a| 制服丝袜亚洲网站| 国产精品亚洲第一区在线暖暖韩国 | 亚洲不卡av一区二区三区| 欧美日韩国产首页在线观看| 日本中文字幕一区二区视频| 精品日韩在线观看| 福利一区二区在线观看| 亚洲精品日韩综合观看成人91| 欧美性生交片4| 久久精品理论片| 国产日本欧洲亚洲| 91论坛在线播放| 免费精品视频在线| 中文字幕一区av| 69堂精品视频| 成人av免费网站| 午夜精品久久久久久久99水蜜桃| 精品国产乱码久久久久久1区2区 | 久久精品国产精品亚洲红杏 | 色嗨嗨av一区二区三区| 日韩高清欧美激情| 欧美国产成人精品| 在线电影国产精品| 国产成人亚洲综合a∨婷婷| 亚洲国产日韩在线一区模特| 久久久久综合网| 欧美三级午夜理伦三级中视频| 国产一区二区三区黄视频| 亚洲午夜免费电影| 国产精品视频你懂的| 制服丝袜国产精品| 色综合色综合色综合色综合色综合| 美女性感视频久久| 亚洲精品日日夜夜| 中文字幕不卡一区| 精品伦理精品一区| 欧美日韩视频在线第一区 | 91精品国产综合久久精品性色| 国产精品911| 日韩国产高清在线| 亚洲一区av在线| 中文字幕一区二区日韩精品绯色| 精品国产乱码久久久久久1区2区 | 成人av电影在线网| 裸体在线国模精品偷拍| 亚洲国产精品久久一线不卡| 欧美极品美女视频| 日韩精品一区二区三区视频| 欧美裸体一区二区三区| 欧美综合亚洲图片综合区| 成人黄色777网| 粉嫩av一区二区三区| 激情久久久久久久久久久久久久久久| 亚洲高清视频的网址| 一二三四社区欧美黄| 亚洲综合一区二区| 亚洲综合一区二区| 亚洲国产精品影院| 午夜国产不卡在线观看视频| 亚洲国产aⅴ天堂久久| 亚洲成av人片在线| 日韩av网站在线观看| 日韩黄色小视频| 免费人成精品欧美精品| 老司机精品视频导航| 免费成人在线观看| 狠狠色综合播放一区二区| 国模冰冰炮一区二区| 国产一区二区伦理| 成人毛片在线观看| 一本一道综合狠狠老| 欧美三级电影网| 欧美电影一区二区| 精品国产精品网麻豆系列| 国产午夜亚洲精品午夜鲁丝片| 国产清纯白嫩初高生在线观看91 | 5月丁香婷婷综合| 91精品综合久久久久久| 欧美成人性福生活免费看| 久久久精品tv| 亚洲欧美怡红院| 亚洲成人午夜电影| 精品伊人久久久久7777人| 国产成人亚洲综合a∨猫咪| 91色porny蝌蚪| 91精品综合久久久久久| 国产亚洲欧美日韩俺去了| 亚洲色图在线播放| 午夜精品福利在线| 国产成人精品影院| 91国偷自产一区二区三区观看| 日韩午夜激情av| 国产精品无人区| 视频一区二区欧美| 成人一区二区三区视频| 欧美日韩大陆一区二区| 国产日韩av一区二区| 天天av天天翘天天综合网色鬼国产| 久久 天天综合| 一本大道综合伊人精品热热| 日韩精品一区二区三区蜜臀 | 婷婷开心激情综合| 国产v日产∨综合v精品视频| 欧美伊人久久久久久午夜久久久久| 日韩欧美成人激情| 亚洲免费在线观看视频| 国产激情精品久久久第一区二区|