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

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

?? ijg_timing.c

?? 這是在PCA下的基于IPP庫示例代碼例子,在網上下了IPP的庫之后,設置相關參數就可以編譯該代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:

  jpeg_calc_output_dimensions(&cinfo);

  bmp_width = cinfo.output_components * cinfo.output_width;

  while(bmp_width & 3)
  {
    bmp_width++;
  }

  img_size = bmp_width * cinfo.output_height;

  img_buff = (Ipp8u*)malloc(img_size);
  if(NULL == img_buff)
  {
    printf("can't allocate %d bytes\n",img_size);
    res = -1;
    goto Exit;
  }

  tmp_buff = (Ipp8u*)malloc(bmp_width);
  if(NULL == tmp_buff)
  {
    printf("can't allocate %d bytes\n",bmp_width);
    res = -1;
    goto Exit;
  }
#ifdef _WIN32
  SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_TIME_CRITICAL);
  Sleep(0);
#endif
  clk0 = get_pentium_counter();

  jpeg_start_decompress(&cinfo);

  cur_output_row = 0;

  while(cinfo.output_scanline < cinfo.output_height)
  {
    if(jpeg_read_scanlines(&cinfo,&tmp_buff,1))
    {
      cur_output_row++;
      outptr = img_buff + bmp_width * (cinfo.output_height - cur_output_row);
      inptr  = tmp_buff;
      for(col = cinfo.output_width; col--;)
      {
        switch(cinfo.output_components)
        {
        case 3:
          outptr[2] = inptr[0];
          outptr[1] = inptr[1];
          outptr[0] = inptr[2];
          inptr  += 3;
          outptr += 3;
          break;

        case 4:
          outptr[0] = inptr[0];
          outptr[1] = inptr[1];
          outptr[2] = inptr[2];
          outptr[3] = inptr[3];
          inptr  += 4;
          outptr += 4;
          break;

        case 1:
          *outptr++ = *inptr++;
          break;

        default:
          break;
        }
      }

      while((int)outptr & 3)
      {
        *outptr++ = 0;
      }
    }
  }

  get_sampling(&cinfo,&ss);

  jpeg_finish_decompress(&cinfo);

  clk1 = get_pentium_counter();
#ifdef _WIN32
  SetThreadPriority(GetCurrentThread(),THREAD_PRIORITY_NORMAL);
#endif
  *buffer    = img_buff;
  *width     = cinfo.output_width;
  *height    = cinfo.output_height;
  *nchannels = cinfo.output_components;
  *sampling  = ss;

  *cpu_clocks = (unsigned int)(clk1 - clk0);

  res = 0;

Exit:

  jpeg_destroy_decompress(&cinfo);

  /* free memory and close files */
  if(NULL != fi)
  {
    fclose(fi);
  }

  if(NULL != tmp_buff)
  {
    free(tmp_buff);
  }

  if(0 != res)
  {
    if(NULL != img_buff)
    {
      free(img_buff);
    }
  }

  return res;
} /* ijg_decode() */


static int DIB_PAD_BYTES(
  int width,
  int nchannels)
{
  int pad_bytes;
  int dib_align;
  int uwidth;
  int awidth;

  dib_align = sizeof(Ipp32u) - 1;

  uwidth = width * nchannels;
  awidth = (uwidth + dib_align) & (~dib_align);

  pad_bytes = awidth - uwidth;

  return pad_bytes;
} /* DIB_PAD_BYTES() */


static int read_word(FILE* fi)
{
  int c;
  int word;

  c = fgetc(fi);
  if(EOF == c)
    return c;

  word = c;

  c = fgetc(fi);
  if(EOF == c)
    return c;

  word |= c << 8;

  return word;
} /* read_word() */


static int read_dword(FILE* fi)
{
  int word;
  int dword;

  word = read_word(fi);
  if(EOF == word)
    return word;

  dword = word;

  word = read_word(fi);
  if(EOF == word)
    return word;

  dword |= word << 16;

  return dword;
} /* read_dword() */


static int load_bmp(
  char*   bmp_name,
  Ipp8u** bmp_buff,
  int*    width,
  int*    height,
  int*    nchannels)
{
  int              res;
  int              img_size;
  int              pad_bytes;
  int              width_step;
  size_t           cnt;
  FILE*            fi = NULL;
  Ipp8u*           buff;

  Ipp16u           bfType;
  Ipp32u           bfSize;
  Ipp16u           bfReserved1;
  Ipp16u           bfReserved2;
  Ipp32u           bfOffBits;

  Ipp32u           biSize;
  Ipp32u           biWidth;
  Ipp32u           biHeight;
  Ipp16u           biPlanes;
  Ipp16u           biBitCount;
  Ipp32u           biCompression;
  Ipp32u           biSizeImage;
  Ipp32u           biXPelsPerMeter;
  Ipp32u           biYPelsPerMeter;
  Ipp32u           biClrUsed;
  Ipp32u           biClrImportant;

  fi = fopen(bmp_name,"rb");
  if(NULL == fi)
  {
    printf("can't open file %s\n",bmp_name);
    res = -1;
    goto Exit;
  }

  bfType = read_word(fi);
  if(EOF == bfType)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  if(bfType != 0x4d42) /* BMP signature 'BM' */
  {
    printf("invalid BMP file\n");
    res = -1;
    goto Exit;
  }

  bfSize = read_dword(fi);
  if(EOF == bfSize)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  bfReserved1 = read_word(fi);
  if(EOF == bfReserved1)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  bfReserved2 = read_word(fi);
  if(EOF == bfReserved2)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  bfOffBits = read_dword(fi);
  if(EOF == bfOffBits)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biSize = read_dword(fi);
  if(EOF == biSize)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biWidth = read_dword(fi);
  if(EOF == biWidth)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biHeight = read_dword(fi);
  if(EOF == biHeight)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biPlanes = read_word(fi);
  if(EOF == biPlanes)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biBitCount = read_word(fi);
  if(EOF == biBitCount)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biCompression = read_dword(fi);
  if(EOF == biCompression)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biSizeImage = read_dword(fi);
  if(EOF == biSizeImage)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biXPelsPerMeter = read_dword(fi);
  if(EOF == biXPelsPerMeter)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biYPelsPerMeter = read_dword(fi);
  if(EOF == biYPelsPerMeter)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biClrUsed = read_dword(fi);
  if(EOF == biClrUsed)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  biClrImportant = read_dword(fi);
  if(EOF == biClrImportant)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  if(biSize != BITMAPINFOHEADER_SIZE || biCompression != BI_RGB)
  {
    printf("Unsupported BMP file\n");
    res = -1;
    goto Exit;
  }

  switch(biBitCount)
  {
  case 24:
    pad_bytes = DIB_PAD_BYTES(biWidth,3);

    width_step = (biWidth * 3) + pad_bytes;

    img_size = width_step * abs(biHeight);
    break;

  case 32:
    width_step = biWidth * 4;

    img_size = width_step * abs(biHeight);
    break;

  default:
    printf("Unsupported BMP file\n");
    res = -1;
    goto Exit;
  }

  buff = (Ipp8u*)malloc(img_size);
  if(NULL == buff)
  {
    printf("can't allocate %d bytes\n",img_size);
    res = -1;
    goto Exit;
  }

  cnt = fread(buff,sizeof(Ipp8u),img_size,fi);
  if(cnt != (size_t)img_size)
  {
    printf("can't read from file\n");
    res = -1;
    goto Exit;
  }

  *bmp_buff  = buff;
  *width     = biWidth;
  *height    = biHeight;
  *nchannels = biBitCount >> 3;

  res = 0;

Exit:

  if(NULL != fi)
  {
    fclose(fi);
  }

  return res;
} /* load_bmp() */


static int write_word(Ipp16u word,FILE* fo)
{
  int c;

  c = word & 0xff;

  if(EOF == fputc(c,fo))
    return EOF;

  c = word >> 8;

  if(EOF == fputc(c,fo))
    return EOF;

  return 0;
} /* write_word() */


static int write_dword(Ipp32u dword,FILE* fo)
{
  int word;

  word = dword & 0xffff;

  if(EOF == write_word(word,fo))
    return EOF;

  word = dword >> 16;

  if(EOF == write_word(word,fo))
    return EOF;

  return 0;
} /* write_dword() */


static int write_bmp(
  Ipp8u* buffer,
  int    width,
  int    height,
  int    nchannels,
  char*  name)
{
  int     i;
  int     res;
  int     row;
  int     bmp_size;
  int     img_size;
  int     bmp_width;
  size_t  cnt;
  FILE*   fo = NULL;
  Ipp8u*  outptr = NULL;

  Ipp16u  bfType;
  Ipp32u  bfSize;
  Ipp16u  bfReserved1;
  Ipp16u  bfReserved2;
  Ipp32u  bfOffBits;

  Ipp32u  biSize;
  Ipp32u  biWidth;
  Ipp32u  biHeight;
  Ipp16u  biPlanes;
  Ipp16u  biBitCount;
  Ipp32u  biCompression;
  Ipp32u  biSizeImage;
  Ipp32u  biXPelsPerMeter;
  Ipp32u  biYPelsPerMeter;
  Ipp32u  biClrUsed;
  Ipp32u  biClrImportant;

  Ipp8u   palette[256*4];

  fo = fopen(name,"wb+");
  if(NULL == fo)
  {
    printf("can't open file - %s\n",name);
    res = -1;
    goto Exit;
  }

  bmp_width = nchannels * width;

  while(bmp_width & 3)
  {
    bmp_width++;
  }

  img_size = bmp_width * height;
  bmp_size = BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE + img_size;

  if(nchannels == 1)
  {
    bmp_size += sizeof(palette);
  }

  bfType      = 0x4d42; /* BMP signature 'BM' */
  bfSize      = bmp_size;
  bfReserved1 = 0;
  bfReserved2 = 0;
  bfOffBits   = BITMAPFILEHEADER_SIZE + BITMAPINFOHEADER_SIZE;

  if(EOF == write_word(bfType,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_dword(bfSize,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_word(bfReserved1,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_word(bfReserved2,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(nchannels == 1)
  {
    bfOffBits += sizeof(palette);
  }

  if(EOF == write_dword(bfOffBits,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  biSize          = BITMAPINFOHEADER_SIZE;
  biWidth         = width;
  biHeight        = height;
  biPlanes        = 1;
  biBitCount      = (unsigned short)(nchannels << 3);
  biCompression   = BI_RGB;
  biSizeImage     = 0;
  biXPelsPerMeter = 0;
  biYPelsPerMeter = 0;
  biClrUsed       = (nchannels == 1) ? 256 : 0;
  biClrImportant  = (nchannels == 1) ? 256 : 0;

  if(EOF == write_dword(biSize,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_dword(biWidth,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_dword(biHeight,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_word(biPlanes,fo))
  {
    printf("can't write to file\n");
    res = -1;
    goto Exit;
  }

  if(EOF == write_word(biBitCount,fo))
  {
    printf("can't write to file\n");
    res = -1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美妇女性影城| 中文字幕不卡在线播放| 日韩一区二区三区电影 | 欧美精品欧美精品系列| 欧美视频一二三区| 欧美肥妇free| 欧美一个色资源| 精品国产一区二区精华| 国产精品视频在线看| 亚洲图片欧美视频| 国产一区二区三区免费在线观看| proumb性欧美在线观看| 欧美网站大全在线观看| 2021中文字幕一区亚洲| 日韩美女视频一区二区| 奇米色777欧美一区二区| 成人激情校园春色| 欧美一级黄色片| 亚洲男人天堂一区| 国产99一区视频免费| 日韩三级伦理片妻子的秘密按摩| 国产精品大尺度| 精品一区二区三区在线观看| 在线免费一区三区| 中文字幕在线不卡国产视频| 九色综合狠狠综合久久| 正在播放一区二区| 一区二区高清视频在线观看| 成人性生交大片免费看中文| 日韩精品最新网址| 亚洲一二三四在线| 色视频一区二区| 亚洲精选视频在线| 色综合天天性综合| 国产精品久久久久国产精品日日| 国产福利一区二区三区视频| 欧美成人女星排名| 美女视频一区在线观看| 欧美一区三区四区| 久久精品99国产精品| 中文一区二区在线观看 | 欧美日韩国产在线观看| 专区另类欧美日韩| 欧洲一区二区三区在线| 亚洲一二三级电影| 欧美大片国产精品| 国产美女娇喘av呻吟久久| 欧美极品少妇xxxxⅹ高跟鞋| 成人黄色在线看| 亚洲成人免费看| 久久日一线二线三线suv| 暴力调教一区二区三区| 亚洲国产一区二区三区| 欧美精品一区二区三区蜜桃| 国产成a人亚洲精| 亚洲成人av免费| 久久久久久久av麻豆果冻| 欧洲精品视频在线观看| 麻豆成人综合网| 国产精品天天看| 精品国产一区久久| 91免费视频网| 国产乱码精品一区二区三区五月婷| 中文字幕免费一区| 日韩视频在线观看一区二区| 成人高清在线视频| 国产资源在线一区| 日韩激情中文字幕| 亚洲国产你懂的| 亚洲女子a中天字幕| 欧美国产精品中文字幕| 在线不卡一区二区| 欧美综合一区二区三区| av亚洲精华国产精华| 五月天精品一区二区三区| 18欧美亚洲精品| 中文字幕免费不卡| 中文av一区二区| 国产精品久久久久久久久免费相片| 欧美videos中文字幕| 欧美成va人片在线观看| 91超碰这里只有精品国产| 欧美日韩国产综合视频在线观看 | 国产精品的网站| 亚洲婷婷综合久久一本伊一区| 中文字幕免费观看一区| 国产精品你懂的在线| 国产精品成人免费在线| 亚洲美腿欧美偷拍| 一区二区三区日韩欧美精品 | 一本一道综合狠狠老| 在线国产电影不卡| 欧美一区二区免费视频| 日韩欧美黄色影院| 国产精品视频一二三区| 亚洲人成网站精品片在线观看| 1区2区3区精品视频| 日本视频在线一区| 成人激情电影免费在线观看| 在线观看亚洲a| 久久日韩精品一区二区五区| 亚洲图片你懂的| 久久99热这里只有精品| 福利电影一区二区| 欧美日韩亚洲另类| 欧美大度的电影原声| 亚洲国产精品99久久久久久久久 | www.亚洲色图.com| 欧美一级专区免费大片| 中文字幕一区二区三区不卡 | 欧美在线高清视频| 国产午夜精品一区二区三区嫩草| 亚洲黄色小视频| 成人午夜大片免费观看| 欧美日韩二区三区| 一区二区三区四区乱视频| 国产成人亚洲精品青草天美| 欧美亚洲动漫制服丝袜| 中文字幕中文字幕一区二区| 激情五月激情综合网| 日本韩国视频一区二区| 国产精品久久久久影视| 国产一区二三区好的| 精品久久久久久久一区二区蜜臀| 亚洲小说欧美激情另类| 91蜜桃视频在线| 亚洲色图在线播放| 色8久久精品久久久久久蜜| 国产精品成人一区二区三区夜夜夜 | 天天综合色天天| 欧美午夜片在线看| 日韩va亚洲va欧美va久久| 91麻豆精品国产91久久久资源速度| 亚洲午夜羞羞片| 欧美日韩国产乱码电影| 久久99国产精品麻豆| 国产亚洲一区字幕| 99r精品视频| 亚洲成人三级小说| 久久蜜桃一区二区| 一道本成人在线| 九九九精品视频| 亚洲男帅同性gay1069| 欧美日韩国产片| 国产精品18久久久久久vr| 亚洲人一二三区| 欧美一级久久久久久久大片| 国产99久久久久| 午夜精品123| 国产精品久久99| 日韩精品最新网址| 色拍拍在线精品视频8848| 精品一区二区免费| 亚洲国产一区视频| 亚洲色图一区二区| 国产视频视频一区| 国产精品国产三级国产有无不卡| 国产老妇另类xxxxx| 午夜亚洲福利老司机| 国产精品国产三级国产a| 久久综合久久综合久久| 欧美日韩视频第一区| 在线免费观看日本一区| 日韩免费高清视频| 国产**成人网毛片九色| 精品在线视频一区| 久久se这里有精品| 美女国产一区二区| 蜜臀久久99精品久久久画质超高清| 亚洲精品国产精品乱码不99| 亚洲私人影院在线观看| 中文字幕一区二区三区四区| 亚洲国产精品成人综合色在线婷婷| 91精选在线观看| 欧美日韩二区三区| 日韩精品一区二区三区视频| 日韩精品一区在线| 国产免费成人在线视频| 国产精品国产自产拍在线| 一区二区成人在线| 青青草97国产精品免费观看无弹窗版| 午夜视频在线观看一区二区| 蜜桃精品视频在线观看| 国产91精品欧美| 欧美无砖砖区免费| 26uuu色噜噜精品一区| 中文字幕一区二区三| 天天综合色天天| 成人永久看片免费视频天堂| 在线免费不卡电影| 欧美videos大乳护士334| 国产精品久久久久久久久免费樱桃 | 亚洲电影你懂得| 国产一区二区0| 欧美三区在线观看| 国产精品不卡一区| 国产一区久久久| 91麻豆精品国产| 夜夜亚洲天天久久| 北条麻妃一区二区三区|