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

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

?? readpic.c

?? mpeg2編解標準源
?? C
字號:
/* readpic.c, read source pictures                                          *//* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. *//* * Disclaimer of Warranty * * These software programs are available to the user without any license fee or * royalty on an "as is" basis.  The MPEG Software Simulation Group 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 MPEG Software Simulation Group does not represent or warrant that the * programs furnished hereunder are free of infringement of any third-party * patents. * * Commercial implementations of MPEG-1 and MPEG-2 video, 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. * */#include <stdio.h>#include <stdlib.h>#include "config.h"#include "global.h"/* private prototypes */static void read_y_u_v _ANSI_ARGS_((char *fname, unsigned char *frame[]));static void read_yuv _ANSI_ARGS_((char *fname, unsigned char *frame[]));static void read_ppm _ANSI_ARGS_((char *fname, unsigned char *frame[]));static void border_extend _ANSI_ARGS_((unsigned char *frame, int w1, int h1,  int w2, int h2));static void conv444to422 _ANSI_ARGS_((unsigned char *src, unsigned char *dst));static void conv422to420 _ANSI_ARGS_((unsigned char *src, unsigned char *dst));
//lspseq
//read a frame from the seq file
void readframe2(fname,num,frame)
char *fname;
int num;
unsigned char *frame[];
{
  int i;
  int chrom_hsize, chrom_vsize;
  int frame_size;
  FILE *fd;

  chrom_hsize = (chroma_format==CHROMA444) ? horizontal_size
                                           : horizontal_size>>1;
  chrom_vsize = (chroma_format!=CHROMA420) ? vertical_size
                                           : vertical_size>>1;
  frame_size= horizontal_size*vertical_size+2*chrom_hsize*chrom_vsize;

  if (!(fd = fopen(fname,"rb")))
  {
    sprintf(errortext,"Couldn't open %s\n",fname);
    error(errortext);
  }

  //seek to the target frame
  fseek(fd,num*frame_size,SEEK_SET);


  /* Y */
  for (i=0; i<vertical_size; i++)
    fread(frame[0]+i*width,1,horizontal_size,fd);
  border_extend(frame[0],horizontal_size,vertical_size,width,height);

  /* Cb */
  for (i=0; i<chrom_vsize; i++)
    fread(frame[1]+i*chrom_width,1,chrom_hsize,fd);
  border_extend(frame[1],chrom_hsize,chrom_vsize,chrom_width,chrom_height);

  /* Cr */
  for (i=0; i<chrom_vsize; i++)
    fread(frame[2]+i*chrom_width,1,chrom_hsize,fd);
  border_extend(frame[2],chrom_hsize,chrom_vsize,chrom_width,chrom_height);

  fclose(fd);
}
//lspseq end
void readframe(fname,frame)char *fname;unsigned char *frame[];{  switch (inputtype)  {  case T_Y_U_V:    read_y_u_v(fname,frame);    break;  case T_YUV:    read_yuv(fname,frame);    break;  case T_PPM:    read_ppm(fname,frame);    break;  default:    break;  }}static void read_y_u_v(fname,frame)char *fname;unsigned char *frame[];{  int i;  int chrom_hsize, chrom_vsize;  char name[128];  FILE *fd;  chrom_hsize = (chroma_format==CHROMA444) ? horizontal_size                                           : horizontal_size>>1;  chrom_vsize = (chroma_format!=CHROMA420) ? vertical_size                                           : vertical_size>>1;  sprintf(name,"%s.Y",fname);  if (!(fd = fopen(name,"rb")))  {    sprintf(errortext,"Couldn't open %s\n",name);    error(errortext);  }  for (i=0; i<vertical_size; i++)    fread(frame[0]+i*width,1,horizontal_size,fd);  fclose(fd);  border_extend(frame[0],horizontal_size,vertical_size,width,height);  sprintf(name,"%s.U",fname);  if (!(fd = fopen(name,"rb")))  {    sprintf(errortext,"Couldn't open %s\n",name);    error(errortext);  }  for (i=0; i<chrom_vsize; i++)    fread(frame[1]+i*chrom_width,1,chrom_hsize,fd);  fclose(fd);  border_extend(frame[1],chrom_hsize,chrom_vsize,chrom_width,chrom_height);  sprintf(name,"%s.V",fname);  if (!(fd = fopen(name,"rb")))  {    sprintf(errortext,"Couldn't open %s\n",name);    error(errortext);  }  for (i=0; i<chrom_vsize; i++)    fread(frame[2]+i*chrom_width,1,chrom_hsize,fd);  fclose(fd);  border_extend(frame[2],chrom_hsize,chrom_vsize,chrom_width,chrom_height);}static void read_yuv(fname,frame)char *fname;unsigned char *frame[];{  int i;  int chrom_hsize, chrom_vsize;  char name[128];  FILE *fd;  chrom_hsize = (chroma_format==CHROMA444) ? horizontal_size                                           : horizontal_size>>1;  chrom_vsize = (chroma_format!=CHROMA420) ? vertical_size                                           : vertical_size>>1;  sprintf(name,"%s.yuv",fname);  if (!(fd = fopen(name,"rb")))  {    sprintf(errortext,"Couldn't open %s\n",name);    error(errortext);  }  /* Y */  for (i=0; i<vertical_size; i++)    fread(frame[0]+i*width,1,horizontal_size,fd);  border_extend(frame[0],horizontal_size,vertical_size,width,height);  /* Cb */  for (i=0; i<chrom_vsize; i++)    fread(frame[1]+i*chrom_width,1,chrom_hsize,fd);  border_extend(frame[1],chrom_hsize,chrom_vsize,chrom_width,chrom_height);  /* Cr */  for (i=0; i<chrom_vsize; i++)    fread(frame[2]+i*chrom_width,1,chrom_hsize,fd);  border_extend(frame[2],chrom_hsize,chrom_vsize,chrom_width,chrom_height);  fclose(fd);}static void read_ppm(fname,frame)char *fname;unsigned char *frame[];{  int i, j;  int r, g, b;  double y, u, v;  double cr, cg, cb, cu, cv;  char name[128];  FILE *fd;  unsigned char *yp, *up, *vp;  static unsigned char *u444, *v444, *u422, *v422;  static double coef[7][3] = {    {0.2125,0.7154,0.0721}, /* ITU-R Rec. 709 (1990) */    {0.299, 0.587, 0.114},  /* unspecified */    {0.299, 0.587, 0.114},  /* reserved */    {0.30,  0.59,  0.11},   /* FCC */    {0.299, 0.587, 0.114},  /* ITU-R Rec. 624-4 System B, G */    {0.299, 0.587, 0.114},  /* SMPTE 170M */    {0.212, 0.701, 0.087}}; /* SMPTE 240M (1987) */  i = matrix_coefficients;  if (i>8)    i = 3;  cr = coef[i-1][0];  cg = coef[i-1][1];  cb = coef[i-1][2];  cu = 0.5/(1.0-cb);  cv = 0.5/(1.0-cr);  if (chroma_format==CHROMA444)  {    u444 = frame[1];    v444 = frame[2];  }  else  {    if (!u444)    {      if (!(u444 = (unsigned char *)malloc(width*height)))        error("malloc failed");      if (!(v444 = (unsigned char *)malloc(width*height)))        error("malloc failed");      if (chroma_format==CHROMA420)      {        if (!(u422 = (unsigned char *)malloc((width>>1)*height)))          error("malloc failed");        if (!(v422 = (unsigned char *)malloc((width>>1)*height)))          error("malloc failed");      }    }  }  sprintf(name,"%s.ppm",fname);  if (!(fd = fopen(name,"rb")))  {    sprintf(errortext,"Couldn't open %s\n",name);    error(errortext);  }  /* skip header */  getc(fd); getc(fd); /* magic number (P6) */  pbm_getint(fd); pbm_getint(fd); pbm_getint(fd); /* width height maxcolors */  for (i=0; i<vertical_size; i++)  {    yp = frame[0] + i*width;    up = u444 + i*width;    vp = v444 + i*width;    for (j=0; j<horizontal_size; j++)    {      r=getc(fd); g=getc(fd); b=getc(fd);      /* convert to YUV */      y = cr*r + cg*g + cb*b;      u = cu*(b-y);      v = cv*(r-y);      yp[j] = (219.0/256.0)*y + 16.5;  /* nominal range: 16..235 */      up[j] = (224.0/256.0)*u + 128.5; /* 16..240 */      vp[j] = (224.0/256.0)*v + 128.5; /* 16..240 */    }  }  fclose(fd);  border_extend(frame[0],horizontal_size,vertical_size,width,height);  border_extend(u444,horizontal_size,vertical_size,width,height);  border_extend(v444,horizontal_size,vertical_size,width,height);  if (chroma_format==CHROMA422)  {    conv444to422(u444,frame[1]);    conv444to422(v444,frame[2]);  }  if (chroma_format==CHROMA420)  {    conv444to422(u444,u422);    conv444to422(v444,v422);    conv422to420(u422,frame[1]);    conv422to420(v422,frame[2]);  }}static void border_extend(frame,w1,h1,w2,h2)unsigned char *frame;int w1,h1,w2,h2;{  int i, j;  unsigned char *fp;  /* horizontal pixel replication (right border) */  for (j=0; j<h1; j++)  {    fp = frame + j*w2;    for (i=w1; i<w2; i++)      fp[i] = fp[i-1];  }  /* vertical pixel replication (bottom border) */  for (j=h1; j<h2; j++)  {    fp = frame + j*w2;    for (i=0; i<w2; i++)      fp[i] = fp[i-w2];  }}/* horizontal filter and 2:1 subsampling */static void conv444to422(src,dst)unsigned char *src, *dst;{  int i, j, im5, im4, im3, im2, im1, ip1, ip2, ip3, ip4, ip5, ip6;  if (mpeg1)  {    for (j=0; j<height; j++)    {      for (i=0; i<width; i+=2)      {        im5 = (i<5) ? 0 : i-5;        im4 = (i<4) ? 0 : i-4;        im3 = (i<3) ? 0 : i-3;        im2 = (i<2) ? 0 : i-2;        im1 = (i<1) ? 0 : i-1;        ip1 = (i<width-1) ? i+1 : width-1;        ip2 = (i<width-2) ? i+2 : width-1;        ip3 = (i<width-3) ? i+3 : width-1;        ip4 = (i<width-4) ? i+4 : width-1;        ip5 = (i<width-5) ? i+5 : width-1;        ip6 = (i<width-5) ? i+6 : width-1;        /* FIR filter with 0.5 sample interval phase shift */        dst[i>>1] = clp[(int)(228*(src[i]+src[ip1])                         +70*(src[im1]+src[ip2])                         -37*(src[im2]+src[ip3])                         -21*(src[im3]+src[ip4])                         +11*(src[im4]+src[ip5])                         + 5*(src[im5]+src[ip6])+256)>>9];      }      src+= width;      dst+= width>>1;    }  }  else  {    /* MPEG-2 */    for (j=0; j<height; j++)    {      for (i=0; i<width; i+=2)      {        im5 = (i<5) ? 0 : i-5;        im3 = (i<3) ? 0 : i-3;        im1 = (i<1) ? 0 : i-1;        ip1 = (i<width-1) ? i+1 : width-1;        ip3 = (i<width-3) ? i+3 : width-1;        ip5 = (i<width-5) ? i+5 : width-1;        /* FIR filter coefficients (*512): 22 0 -52 0 159 256 159 0 -52 0 22 */        dst[i>>1] = clp[(int)(  22*(src[im5]+src[ip5])-52*(src[im3]+src[ip3])                         +159*(src[im1]+src[ip1])+256*src[i]+256)>>9];      }      src+= width;      dst+= width>>1;    }  }}/* vertical filter and 2:1 subsampling */static void conv422to420(src,dst)unsigned char *src, *dst;{  int w, i, j, jm6, jm5, jm4, jm3, jm2, jm1;  int jp1, jp2, jp3, jp4, jp5, jp6;  w = width>>1;  if (prog_frame)  {    /* intra frame */    for (i=0; i<w; i++)    {      for (j=0; j<height; j+=2)      {        jm5 = (j<5) ? 0 : j-5;        jm4 = (j<4) ? 0 : j-4;        jm3 = (j<3) ? 0 : j-3;        jm2 = (j<2) ? 0 : j-2;        jm1 = (j<1) ? 0 : j-1;        jp1 = (j<height-1) ? j+1 : height-1;        jp2 = (j<height-2) ? j+2 : height-1;        jp3 = (j<height-3) ? j+3 : height-1;        jp4 = (j<height-4) ? j+4 : height-1;        jp5 = (j<height-5) ? j+5 : height-1;        jp6 = (j<height-5) ? j+6 : height-1;        /* FIR filter with 0.5 sample interval phase shift */        dst[w*(j>>1)] = clp[(int)(228*(src[w*j]+src[w*jp1])                             +70*(src[w*jm1]+src[w*jp2])                             -37*(src[w*jm2]+src[w*jp3])                             -21*(src[w*jm3]+src[w*jp4])                             +11*(src[w*jm4]+src[w*jp5])                             + 5*(src[w*jm5]+src[w*jp6])+256)>>9];      }      src++;      dst++;    }  }  else  {    /* intra field */    for (i=0; i<w; i++)    {      for (j=0; j<height; j+=4)      {        /* top field */        jm5 = (j<10) ? 0 : j-10;        jm4 = (j<8) ? 0 : j-8;        jm3 = (j<6) ? 0 : j-6;        jm2 = (j<4) ? 0 : j-4;        jm1 = (j<2) ? 0 : j-2;        jp1 = (j<height-2) ? j+2 : height-2;        jp2 = (j<height-4) ? j+4 : height-2;        jp3 = (j<height-6) ? j+6 : height-2;        jp4 = (j<height-8) ? j+8 : height-2;        jp5 = (j<height-10) ? j+10 : height-2;        jp6 = (j<height-12) ? j+12 : height-2;        /* FIR filter with 0.25 sample interval phase shift */        dst[w*(j>>1)] = clp[(int)(8*src[w*jm5]                            +5*src[w*jm4]                           -30*src[w*jm3]                           -18*src[w*jm2]                          +113*src[w*jm1]                          +242*src[w*j]                          +192*src[w*jp1]                           +35*src[w*jp2]                           -38*src[w*jp3]                           -10*src[w*jp4]                           +11*src[w*jp5]                            +2*src[w*jp6]+256)>>9];        /* bottom field */        jm6 = (j<9) ? 1 : j-9;        jm5 = (j<7) ? 1 : j-7;        jm4 = (j<5) ? 1 : j-5;        jm3 = (j<3) ? 1 : j-3;        jm2 = (j<1) ? 1 : j-1;        jm1 = (j<height-1) ? j+1 : height-1;        jp1 = (j<height-3) ? j+3 : height-1;        jp2 = (j<height-5) ? j+5 : height-1;        jp3 = (j<height-7) ? j+7 : height-1;        jp4 = (j<height-9) ? j+9 : height-1;        jp5 = (j<height-11) ? j+11 : height-1;        jp6 = (j<height-13) ? j+13 : height-1;        /* FIR filter with 0.25 sample interval phase shift */        dst[w*((j>>1)+1)] = clp[(int)(8*src[w*jp6]                                +5*src[w*jp5]                               -30*src[w*jp4]                               -18*src[w*jp3]                              +113*src[w*jp2]                              +242*src[w*jp1]                              +192*src[w*jm1]                               +35*src[w*jm2]                               -38*src[w*jm3]                               -10*src[w*jm4]                               +11*src[w*jm5]                                +2*src[w*jm6]+256)>>9];      }      src++;      dst++;    }  }}/* pbm_getc() and pbm_getint() are essentially taken from * PBMPLUS (C) Jef Poskanzer * but without error/EOF checking */char pbm_getc(file)FILE* file;{  char ch;  ch = getc(file);  if (ch=='#')  {    do    {      ch = getc(file);    }    while (ch!='\n' && ch!='\r');  }  return ch;}int pbm_getint(file)FILE* file;{  char ch;  int i;  do  {    ch = pbm_getc(file);  }  while (ch==' ' || ch=='\t' || ch=='\n' || ch=='\r');  i = 0;  do  {    i = i*10 + ch-'0';    ch = pbm_getc(file);  }  while (ch>='0' && ch<='9');  return i;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕的久久| 久久婷婷综合激情| 93久久精品日日躁夜夜躁欧美| 日本aⅴ亚洲精品中文乱码| 亚洲国产成人av| 尤物在线观看一区| 亚洲一区二区三区在线播放| 一区二区在线观看不卡| 一区二区三国产精华液| 亚洲一区二区视频| 日本vs亚洲vs韩国一区三区二区| 日韩在线一区二区三区| 极品美女销魂一区二区三区免费 | 日韩精品一级二级| 亚洲高清免费一级二级三级| 亚洲成人综合在线| 看国产成人h片视频| 精品亚洲porn| 成人av在线网站| 色综合久久综合| 欧美中文字幕亚洲一区二区va在线| 欧美熟乱第一页| 欧美成人性福生活免费看| 精品久久久久久久人人人人传媒| 国产三级精品三级在线专区| 成人欧美一区二区三区| 午夜精品福利视频网站| 韩国av一区二区三区四区| 99精品一区二区| 91精品免费观看| 国产三级精品在线| 三级欧美韩日大片在线看| 国产一区二区福利| 91极品美女在线| 欧美v日韩v国产v| 亚洲欧洲www| 蜜臀av一区二区在线免费观看| 粉嫩嫩av羞羞动漫久久久 | 欧美精品一区二区三区很污很色的 | 国产一区在线看| 91麻豆自制传媒国产之光| 91麻豆精品国产91久久久久久久久| 久久综合久久综合久久综合| 亚洲另类一区二区| 国产精品自拍三区| 欧美日韩一级视频| 国产精品久久久久久久岛一牛影视| 亚洲成人免费影院| 91麻豆文化传媒在线观看| 久久综合久久综合久久| 亚洲成人福利片| 成人影视亚洲图片在线| 欧美成人综合网站| 亚洲成人777| av不卡免费电影| 欧美极品美女视频| 精品一区二区三区免费观看| 日本高清不卡视频| 日韩久久一区二区| 国产91丝袜在线18| 2014亚洲片线观看视频免费| 日韩影视精彩在线| 欧美日本一区二区三区| 亚洲天堂精品在线观看| 岛国一区二区在线观看| 久久综合九色综合97_久久久| 日韩av在线发布| 欧美日韩国产高清一区| 亚洲成a人在线观看| 在线视频你懂得一区二区三区| 国产精品美女久久久久高潮| 国产成人午夜视频| 久久精品亚洲麻豆av一区二区 | 色综合久久九月婷婷色综合| 国产精品久久精品日日| 成人美女在线视频| 国产精品久久久久久久浪潮网站| 成人免费黄色大片| 亚洲老司机在线| 在线一区二区三区| 亚洲成人7777| 日韩久久免费av| 国内精品在线播放| 久久久99精品免费观看| 成人免费视频国产在线观看| 最新成人av在线| 色综合天天综合| 精品欧美乱码久久久久久1区2区| 亚洲午夜精品一区二区三区他趣| 在线观看亚洲一区| 亚洲成av人综合在线观看| 555夜色666亚洲国产免| 麻豆久久久久久久| 国产精品色噜噜| 日本韩国一区二区三区| 日韩国产欧美三级| 精品剧情在线观看| 成人永久aaa| 午夜电影网一区| 久久久久9999亚洲精品| 一本久道久久综合中文字幕 | 亚洲天堂成人网| 欧美精品自拍偷拍| 国产麻豆精品久久一二三| 最新中文字幕一区二区三区| 色香蕉久久蜜桃| 蜜桃av一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 一本色道久久综合亚洲91| 日韩二区三区四区| 国产精品视频yy9299一区| 欧美日韩一卡二卡三卡| 成人免费视频视频| 日本中文字幕一区二区视频 | 最新热久久免费视频| 欧美日韩国产小视频| 高清在线不卡av| 婷婷开心激情综合| 国产精品国产精品国产专区不蜜 | 26uuuu精品一区二区| 色8久久人人97超碰香蕉987| 久久精品国产亚洲a| 亚洲老司机在线| 日本一区二区三区国色天香| 欧美日韩色综合| 色婷婷久久久亚洲一区二区三区| 精品在线观看视频| 日韩专区欧美专区| 亚洲精品成人少妇| 欧美国产国产综合| 久久久综合精品| 欧美一区二区三区不卡| 99精品国产热久久91蜜凸| 国产精品一区在线| 精品一区二区在线观看| 天堂影院一区二区| 亚洲韩国精品一区| 夜夜精品视频一区二区 | 色综合天天综合在线视频| 国产一区二区三区在线观看免费视频| 亚洲午夜私人影院| 亚洲日本在线视频观看| 久久综合视频网| 亚洲精品在线观看视频| 精品国产一区二区三区忘忧草 | 欧美日韩免费一区二区三区视频| 成人免费看的视频| 风间由美一区二区三区在线观看| 精品无人码麻豆乱码1区2区| 捆绑紧缚一区二区三区视频 | 99精品黄色片免费大全| 成人精品国产一区二区4080| 国产精品一二三| 国产剧情一区二区| 国产成人自拍网| 成人av在线一区二区三区| 成人黄色在线看| 色天天综合久久久久综合片| 色婷婷亚洲精品| 欧美日韩你懂得| 日韩一区二区三区四区| 精品伦理精品一区| 国产欧美一区二区三区网站| 欧美国产日韩亚洲一区| 国产精品久久久久久福利一牛影视| 国产精品沙发午睡系列990531| 1024成人网色www| 亚洲成人自拍一区| 亚洲电影一级片| 日本成人中文字幕| 国产精品一区二区久激情瑜伽| 国产白丝精品91爽爽久久| 99久久精品国产观看| 欧美日韩一区二区三区不卡| 欧美xfplay| 日韩美女啊v在线免费观看| 亚洲成av人在线观看| 美国十次综合导航| 成人午夜私人影院| 精品视频在线免费看| 26uuu国产在线精品一区二区| 国产精品国产自产拍高清av | 亚洲人午夜精品天堂一二香蕉| 夜夜爽夜夜爽精品视频| 经典三级在线一区| 欧美在线视频全部完| 日韩免费看的电影| 中文字幕在线观看一区二区| 首页亚洲欧美制服丝腿| 国产乱码字幕精品高清av | 亚洲免费观看高清在线观看| 五月婷婷综合在线| 成人激情视频网站| 日韩视频一区二区三区| 日韩理论片在线| 精品中文字幕一区二区小辣椒| 在线精品视频一区二区三四| 久久久久青草大香线综合精品| 亚洲猫色日本管| 国产精品一区二区免费不卡|