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

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

?? pgm_gen.cpp

?? mpeg4編解碼器
?? CPP
字號(hào):
/******************************************************** * Some code. Copyright (C) 2003 by Pascal Massimino.   * * All Rights Reserved.      (http://skal.planet-d.net) * * For Educational/Academic use ONLY. See 'LICENSE.TXT'.* ********************************************************///////////////////////////////////////////////////////////// pgm_gen.cpp////  (strange) video input generator (for debugging)//////////////////////////////////////////////////////////#include <stdio.h>#include <math.h>#include <stdlib.h>#include <string.h>#include <math.h>#include "skl.h"#include "skl_syst/skl_random.h"int Out_YUV = 0;#define WIDTH  256#define HEIGHT 256SKL_BYTE Y_Pic[HEIGHT  ][WIDTH  ];SKL_BYTE U_Pic[HEIGHT/2][WIDTH/2];SKL_BYTE V_Pic[HEIGHT/2][WIDTH/2];SKL_BYTE Y_Ref[HEIGHT  ][WIDTH  ];SKL_BYTE U_Ref[HEIGHT/2][WIDTH/2];SKL_BYTE V_Ref[HEIGHT/2][WIDTH/2];typedef struct {  int x, y;} VECT;//////////////////////////////////////////////////////////static void PGM_Out(){  int k;  if (Out_YUV) {    for(k=0; k<HEIGHT; ++k)      fwrite(Y_Pic[k], WIDTH, 1, stdout);    for(k=0; k<HEIGHT/2; ++k)      fwrite(U_Pic[k], WIDTH/2, 1, stdout);    for(k=0; k<HEIGHT/2; ++k)      fwrite(V_Pic[k], WIDTH/2, 1, stdout);  }  else {    fprintf(stdout, "P5\n\n%d %d\n255\n", WIDTH, HEIGHT*3/2 );    for(k=0; k<HEIGHT; ++k)      fwrite(Y_Pic[k], WIDTH, 1, stdout);    for(k=0; k<HEIGHT/2; ++k) {      fwrite(U_Pic[k], WIDTH/2, 1, stdout);      fwrite(V_Pic[k], WIDTH/2, 1, stdout);    }  }}//////////////////////////////////////////////////////////// Pseudo Warp#define FIX 8VECT Pts[4];VECT Po, dU, dV, dw;#define ln_PREC 2#define PREC  (1<<ln_PREC)        // -th pel unitstatic void Build_Texture(){  int x,y;  for(y=0; y<HEIGHT; ++y)    for(x=0; x<WIDTH; ++x)      Y_Ref[y][x] = (x^y)&0xff;  for(y=0; y<HEIGHT/2; ++y)    for(x=0; x<WIDTH/2; ++x) {      U_Ref[y][x] = (4*(x^y)+ 25)&0xff;      V_Ref[y][x] = (4*(x^y)+113)&0xff;    }}static void Random_Pts(float t){  static const float Amp[4] = { 16.530f, 16.123f,   38.641f, 6.245f };  static const float Phi[4] = {  0.500f,  1.100f,    2.000f, 0.427f };  static const float Omg[4] = {  1.5f,    1.230f,    0.650f, 0.427f };  static const VECT  Po[4] = { {-10,-10}, {10,-10}, {-10, 10}, { 10,10 } };  int i;  for(i=0; i<4; ++i) {    double x, y;    x = Amp[i]*cos(Omg[i]*t + Phi[i]) + Po[i].x;    y = Amp[i]*sin(Omg[i]*t + Phi[i]) + Po[i].y;    Pts[i].x = (int)( x*PREC );    Pts[i].y = (int)( y*PREC );//    fprintf( stderr, "#%d (%d,%d)\n", i, Pts[i].x, Pts[i].y );  }}static void Invert_Matrix(int Nb_Pts){  const int SCALEX = WIDTH << FIX;  const int SCALEY = HEIGHT << FIX;    // convert to vectors in PREC-th pel unit  Pts[1].x = Pts[1].x +  PREC*WIDTH;  Pts[1].y = Pts[1].y +           0;  Pts[2].x = Pts[2].x +           0;  Pts[2].y = Pts[2].y + PREC*HEIGHT;  Pts[3].x = Pts[3].x + Pts[2].x + Pts[1].x;  Pts[3].y = Pts[3].y + Pts[2].y + Pts[1].y;  Po.x = Pts[0].x;  Po.y = Pts[0].y;  switch(Nb_Pts) {    case 1:      dU.x = PREC*(1<<FIX); dU.y = 0;      dV.x = 0;             dV.y = PREC*(1<<FIX);    break;    case 2:    {      int Norm = (Pts[1].x*Pts[1].x + Pts[1].y*Pts[1].y) / (PREC*PREC);      if (Norm==0) Norm = 1;  // ahem...      dU.x = (Pts[1].x*SCALEX)/Norm;  dU.y = (Pts[1].y*SCALEY)/Norm;      dV.x =-(Pts[1].y*SCALEX)/Norm;  dV.y = (Pts[1].x*SCALEY)/Norm;    }    break;    case 3:    {      int Det = (Pts[1].x*Pts[2].y - Pts[2].x*Pts[1].y) / (PREC*PREC);      if (Det==0) Det = 1;  // ahem...      dU.x = (Pts[2].y*SCALEX)/Det;  dU.y =-(Pts[2].x*SCALEY)/Det;      dV.x =-(Pts[1].y*SCALEX)/Det;  dV.y = (Pts[1].x*SCALEY)/Det;    }    break;    case 4:      dU.x = 0; dU.y = 0;      dV.x = 0; dV.y = 0;    break;  }}#define ONE (1<<(ln_PREC+FIX))static void Warp(int Nb_Pts){  int x, y;  int uo, vo, u, v;  if (Nb_Pts<4)  {    uo = -(dU.x*Po.x + dU.y*Po.y) >> ln_PREC;    vo = -(dV.x*Po.x + dV.y*Po.y) >> ln_PREC;    for(y=0; y<HEIGHT; ++y) {      u = uo; v = vo;      uo += dU.y; vo += dV.y;      for(x=0; x<WIDTH; ++x) {        int xx = u >> (ln_PREC+FIX);        int yy = v >> (ln_PREC+FIX);        if (xx<0) xx = 0;        else if (xx>=WIDTH) xx = WIDTH-1;        if (yy<0) yy = 0;        else if (yy>=HEIGHT) yy = HEIGHT-1;        //Y_Pic[y][x] = Y_Ref[yy][xx];        const int ex = u & (ONE-1);        const int ey = v & (ONE-1);        Y_Pic[y][x] = ( (ONE-ex)*(ONE-ey)*Y_Ref[yy][xx] + ex*(ONE-ey)*Y_Ref[yy][xx+1]                    + (ONE-ex)*ey*Y_Ref[yy+1][xx] + ex*ey*Y_Ref[yy+1][xx+1] ) >> (2*(ln_PREC+FIX));        u += dU.x;        v += dV.x;      }    }    uo = -(Po.x/2*dU.x + Po.y/2*dU.y) >> ln_PREC;    vo = -(Po.x/2*dV.x + Po.y/2*dV.y) >> ln_PREC;    for(y=0; y<HEIGHT/2; ++y) {      u = uo; v = vo;      uo += dU.y; vo += dV.y;      for(x=0; x<WIDTH/2; ++x) {        int xx = u >> (ln_PREC+FIX);        int yy = v >> (ln_PREC+FIX);        if (xx<0) xx = 0;        else if (xx>=WIDTH/2) xx = WIDTH/2-1;        if (yy<0) yy = 0;        else if (yy>=HEIGHT/2) yy = HEIGHT/2-1;        //U_Pic[y][x] = U_Ref[yy][xx];        //V_Pic[y][x] = V_Ref[yy][xx];        const int ex = u & (ONE-1);        const int ey = v & (ONE-1);        U_Pic[y][x] = ( (ONE-ex)*(ONE-ey)*U_Ref[yy][xx] + ex*(ONE-ey)*U_Ref[yy][xx+1]                    + (ONE-ex)*ey*U_Ref[yy+1][xx] + ex*ey*U_Ref[yy+1][xx+1] ) >> (2*(ln_PREC+FIX));        V_Pic[y][x] = ( (ONE-ex)*(ONE-ey)*V_Ref[yy][xx] + ex*(ONE-ey)*V_Ref[yy][xx+1]                    + (ONE-ex)*ey*V_Ref[yy+1][xx] + ex*ey*V_Ref[yy+1][xx+1] ) >> (2*(ln_PREC+FIX));        u += dU.x;        v += dV.x;      }    }  }}//////////////////////////////////////////////////////////// Scroll (for GMC)void Make_Scroll(float t, int Param, int N){  int x, y;  for(y=0; y<HEIGHT; ++y)  {    if (Param==0)      for(x=0; x<WIDTH;++x) Y_Pic[y][x] = Y_Ref[y][(x-N+20*WIDTH)%WIDTH];    else      for(x=0; x<WIDTH;++x) Y_Pic[y][x] = Y_Ref[(y-N+20*HEIGHT)%HEIGHT][x];  }  for(y=0; y<HEIGHT/2; ++y) {    for(x=0; x<WIDTH/2; ++x) {      U_Pic[y][x] = 0x80;      V_Pic[y][x] = 0x80;    }  }}//////////////////////////////////////////////////////////// Debug outputconst int MAX_SQ = 80;static int Sqx[MAX_SQ] = {0};static int Sqy[MAX_SQ] = {0};static int SqS[MAX_SQ] = {0};static int SqC[MAX_SQ] = {0};static int SpeedC[MAX_SQ] = {0};void Make_Squares(float t, int Param, int N){  SKL_RANDOM rnd(1+Param+N);  int x, y, n;  if (t==0.) {    for(n=0; n<MAX_SQ; ++n) {      Sqx[n] = rnd.Get_Int(WIDTH-40);      Sqy[n] = rnd.Get_Int(HEIGHT-40);      SqS[n] = 8+rnd.Get_Int(30);      SqC[n] = rnd.Get_Int(0xffffff) | 0x306060;      SpeedC[n] = rnd.Get_Int(33) - 16;    }  }  for(n=0; n<MAX_SQ; ++n) {    switch(n&3) {      case 0: Sqx[n] = (Sqx[n]+SpeedC[n] + WIDTH-40 )%(WIDTH-40); break;      case 1: Sqx[n] = (Sqx[n]-SpeedC[n] + WIDTH-40 )%(WIDTH-40); break;      case 2: Sqy[n] = (Sqy[n]-SpeedC[n] + HEIGHT-40)%(HEIGHT-40); break;      case 3: Sqy[n] = (Sqy[n]+SpeedC[n] + HEIGHT-40)%(HEIGHT-40); break;    }  }  int Yo,Uo,Vo;  int Phase = (int)(t/0.05f);  if (Phase&1) { Yo = 0x00; Uo = 0x00; Vo = 0xff; }  else         { Yo = 0x00; Uo = 0xff; Vo = 0x00; }  for(y=0; y<HEIGHT; ++y)    for(x=0; x<WIDTH; ++x)      Y_Pic[y][x] = Yo;  for(y=0; y<HEIGHT/2; ++y) {      for(x=0; x<WIDTH/2; ++x) {      U_Pic[y][x] = Uo;      V_Pic[y][x] = Vo;    }  }  for(n=0; n<MAX_SQ; ++n) {    int xo = Sqx[n];    int yo = Sqy[n];    int H  = SqS[n];    int yIncr = 1;    if (Param==0) {      H /=2; yIncr = 2;      if (N&1) yo += 1;    }    for(y=0; y<H; y+=yIncr)       for(x=0; x<SqS[n]; ++x)         Y_Pic[yo+y][xo+x] = SqC[n]&0xff;    for(y=0; y<SqS[n]/2; ++y)       for(x=0; x<SqS[n]/2; ++x) {        U_Pic[(yo+1)/2+y][(xo+1)/2+x] = (SqC[n]>> 8)&0xff;        V_Pic[(yo+1)/2+y][(xo+1)/2+x] = (SqC[n]>>16)&0xff;      }  }}//////////////////////////////////////////////////////////// Zoom / Rotatevoid Make_Zoom(float t, int Param, int N){  SKL_ASSERT(WIDTH>=256 && HEIGHT>=256);  int x, y;  if (Param) {    for(y=0; y<HEIGHT; ++y)      for(x=0; x<WIDTH; ++x) {        float u = 2.f*(x-WIDTH/2+.5f)/WIDTH;        float v = 2.f*(y-HEIGHT/2+.5f)/HEIGHT;        int uu = (int)(3.7*N+WIDTH*sqrt(u*u+v*v)) % WIDTH;        int vv = (int)( (.5 - atan2(v,u)/2./3.14159265 )*HEIGHT );        Y_Pic[y][x] = Y_Ref[uu][vv];      }  }  else {    for(y=0; y<HEIGHT; ++y)      for(x=0; x<WIDTH; ++x) {        float u = 2.f*(x-WIDTH/2+.5f)/WIDTH;        float v = 2.f*(y-HEIGHT/2+.5f)/HEIGHT;        int uu = (int)(HEIGHT*sqrt(u*u+v*v)) % HEIGHT;        int vv = (int)( (.5 - atan2(v,u)/2./3.14159265 )*WIDTH + 3.7*N ) % WIDTH;        Y_Pic[y][x] = Y_Ref[uu][vv];      }  }  for(y=0; y<HEIGHT/2; ++y) {    for(x=0; x<WIDTH/2; ++x) {      U_Pic[y][x] = 0x80;      V_Pic[y][x] = 0x80;    }  }}//////////////////////////////////////////////////////////// Pattern for testing luminance maskingvoid Make_LM(float t, int Param, int N){  SKL_RANDOM rnd(1+Param+N);  int x, y;  for(y=0; y<HEIGHT; ++y)    for(x=0; x<WIDTH; ++x) {      int C;      if (Param==0) C = y + rnd.Get_Int(2*x+1) - x;      else C = y + (((x+y)&1) ? (-x/2) : (x/2) );      if (C>255) C = 255;      else if (C<0) C = 0;      Y_Pic[y][x] = C;    }  for(y=0; y<HEIGHT/2; ++y) {    for(x=0; x<WIDTH/2; ++x) {      U_Pic[y][x] = 0x80;      V_Pic[y][x] = 0x80;    }  }}//////////////////////////////////////////////////////////static void Help(const char * Exe) {  printf( "Usage: %s [options]\n", Exe );  printf( "options are:\n" );  printf( " -h ............ this help\n" );  printf( " -n <int> ...... number of frames to generate\n" );  printf( " -t <int> ...... output type (0:warp, 1:random, etc.)\n" );  printf( " -p <int> ...... param for output (nb warp points, ...)\n" );  printf( " -yuv .......... output is raw YUV 4:2:0\n" );  printf( "\n" );  exit(0);}static int Check(int i, int max) {  if (i==max) {    fprintf( stderr, "Missing param!\n" );    exit(1);  }  return i;}int main(int argc, const char * const argv[]){  int i, Type=0, Nb_Frames = 100;  int Param = 3;  float t = 0.;  for(i=1; i<argc; ++i) {    if (!strcmp(argv[i], "-h"))      Help(argv[0]);    if (!strcmp(argv[i], "-yuv"))      Out_YUV = 1;    else if (!strcmp(argv[i],"-n"))      Nb_Frames = atoi(argv[Check(++i,argc)]);    else if (!strcmp(argv[i],"-p"))      Param = atoi(argv[Check(++i,argc)]);    else if (!strcmp(argv[i],"-t"))      Type = atoi(argv[Check(++i,argc)]);  }  Build_Texture();  if (Type==0) {    if (Param>4) Param = 4;    else if (Param<1) Param = 1;  }  else if (Type==1) {}  else if (Type==2) {}  else if (Type==3) {}  int n = 0;  while(Nb_Frames-->0)  {    if (Type==0) {      Random_Pts(t);      Invert_Matrix(Param);      Warp(Param);    }    else if (Type==1) {      Make_Scroll(t,Param, n);    }    else if (Type==2) {      Make_Squares(t,Param, n);    }    else if (Type==3) {      Make_Zoom(t,Param, n);    }    else if (Type==4) {      Make_LM(t,Param, n);    }    PGM_Out();    t += .05f;    n++;  }  return 0;}//////////////////////////////////////////////////////////

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色综合久久| 国产精品理伦片| 欧美精品第1页| 日本中文在线一区| 欧美一区永久视频免费观看| 免费看欧美美女黄的网站| 日韩欧美一二区| 精品一区二区国语对白| 久久久三级国产网站| 成人国产在线观看| 亚洲综合色噜噜狠狠| 91麻豆精品国产| 国产福利一区二区三区视频在线| 中文字幕成人网| 欧美亚洲一区二区在线| 免费成人av在线| 欧美韩国一区二区| 欧美日韩美少妇| 国产精品一区二区在线看| 中文字幕在线播放不卡一区| 欧美优质美女网站| 蜜桃精品视频在线观看| 国产精品美女久久久久久久久 | 精品一区二区三区不卡| 国产午夜精品一区二区三区视频| 成人激情av网| 亚洲成人777| 中文在线一区二区| 制服丝袜激情欧洲亚洲| 成人黄色小视频在线观看| 午夜精品久久久久久不卡8050| 日韩一区二区三区高清免费看看| 成人爽a毛片一区二区免费| 性欧美疯狂xxxxbbbb| 久久久av毛片精品| 欧洲精品中文字幕| 懂色中文一区二区在线播放| 丝袜亚洲另类欧美| 国产精品久久久99| 日韩一区二区三区视频| www.一区二区| 狠狠色丁香久久婷婷综| 一区二区三区在线高清| 国产天堂亚洲国产碰碰| 欧美一区二区在线观看| 色一情一乱一乱一91av| 国产精品123区| 蜜臀精品一区二区三区在线观看| 1区2区3区精品视频| 久久色.com| 日韩精品一区二区三区中文精品| 在线观看亚洲一区| 不卡电影免费在线播放一区| 国产精品资源网| 蜜臀久久久久久久| 日韩精品久久久久久| 亚洲欧美电影一区二区| 国产精品久久久久久一区二区三区| 国产福利一区二区三区| 精品伊人久久久久7777人| 奇米色777欧美一区二区| 亚洲成人黄色小说| 亚洲在线免费播放| 亚洲天堂福利av| 亚洲欧美一区二区视频| 日本一区二区三区四区| 久久无码av三级| 欧美大片免费久久精品三p | 欧美日韩一区二区三区四区五区| 成人免费毛片app| 国产东北露脸精品视频| 国产在线观看一区二区| 看片网站欧美日韩| 免费人成精品欧美精品| 蜜乳av一区二区| 久久精品国产精品亚洲精品| 美女网站在线免费欧美精品| 日本aⅴ免费视频一区二区三区| 日韩电影在线观看电影| 日本91福利区| 久久成人精品无人区| 伦理电影国产精品| 国产综合久久久久久鬼色| 国产乱子伦视频一区二区三区 | 国产成人精品免费视频网站| 国产高清不卡一区| 亚洲欧美日韩在线| 亚洲精品欧美激情| 亚洲电影你懂得| 午夜精品免费在线| 极品少妇xxxx偷拍精品少妇| 国产在线播放一区| 日本一区二区三区高清不卡| 狠狠色狠狠色综合| 亚洲成a人片在线观看中文| 精品av久久707| 成人免费视频视频| 亚洲va欧美va人人爽午夜| 国产精品成人免费在线| 国产又黄又大久久| 91精品欧美久久久久久动漫 | 久久99精品久久久久久国产越南 | gogo大胆日本视频一区| 亚洲va欧美va国产va天堂影院| 在线精品视频一区二区三四 | 一区二区三区丝袜| 97精品视频在线观看自产线路二| 精品国产免费一区二区三区香蕉| 激情六月婷婷久久| 日韩理论片在线| 樱花草国产18久久久久| 精品三级av在线| 日韩女优av电影| 国产视频一区二区在线观看| 欧美一区午夜精品| 91精品国产手机| 欧美视频一区二区在线观看| 91一区一区三区| 免费成人结看片| 蜜臀a∨国产成人精品| 中文字幕在线不卡国产视频| 欧美一级一区二区| 日韩一区二区三区电影在线观看 | 国产精品国产a| 欧美美女一区二区在线观看| 成人午夜看片网址| 国产高清无密码一区二区三区| 精彩视频一区二区三区 | 国产a久久麻豆| 91亚洲精品久久久蜜桃| 欧美综合在线视频| 9久草视频在线视频精品| 色一区在线观看| 欧美挠脚心视频网站| 久久综合久色欧美综合狠狠| 国产精品乱人伦| 亚洲激情在线播放| 日韩在线一区二区| 国产精品996| 一本到不卡精品视频在线观看| 91视频免费观看| 精品视频1区2区3区| 欧美视频中文字幕| 色综合久久久久久久久久久| 国产揄拍国内精品对白| www.成人在线| 日韩一区二区麻豆国产| 亚洲一区成人在线| 国产在线播放一区| 丁香婷婷综合激情五月色| 色美美综合视频| 日韩小视频在线观看专区| 久久精品夜夜夜夜久久| 亚洲女人的天堂| 精品一区二区三区在线视频| 99视频一区二区| 欧美成人在线直播| 亚洲丝袜自拍清纯另类| 美女视频黄频大全不卡视频在线播放| 国产精品一区二区不卡| 欧美久久久久久久久| 国产精品全国免费观看高清| 午夜精品在线看| 99久久精品国产精品久久 | 亚洲一区视频在线| 99久久精品免费精品国产| 91精品国产综合久久久久久久| 国产精品精品国产色婷婷| 蜜桃一区二区三区在线| 欧洲在线/亚洲| 国产精品美日韩| 韩日av一区二区| 日韩一区二区三区观看| 亚洲夂夂婷婷色拍ww47| 成人91在线观看| 国产日韩综合av| 久久精品噜噜噜成人88aⅴ| 欧美三级在线播放| 樱桃国产成人精品视频| proumb性欧美在线观看| 国产亚洲视频系列| 蜜桃av噜噜一区二区三区小说| 欧美午夜不卡视频| 亚洲另类色综合网站| 99久久99久久免费精品蜜臀| 国产日韩欧美亚洲| 国产一区二区成人久久免费影院| 欧美一区二区在线观看| 午夜精品福利一区二区三区蜜桃| 在线视频亚洲一区| 一区二区三区精品在线观看| 国产精品全国免费观看高清| 久久婷婷一区二区三区| 奇米一区二区三区| 国产亚洲一二三区| 精品在线一区二区三区| 欧美一区二区在线免费播放 | 一区二区三区日韩欧美精品| 国产成人av一区二区三区在线| 精品福利一区二区三区免费视频|