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

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

?? zdjpeg.c

?? linux環(huán)境下jpeg編解碼算法的實(shí)現(xiàn)
?? C
?? 第 1 頁 / 共 4 頁
字號:
      zJpegReadHeader(&cinfo, FALSE, &thumbnailFound);      /*       * Adjust default decompression parameters by re-parsing the options. In a       * real application the decode parameters must be set after reading the       * header       */      parse_switches( &cinfo, argc, argv, 0, TRUE );      /*       * Scale the image to fit the desired output size. Here we always scale to       * match aspect ratio and maximum 800x600       */      zJpegSetOutputSize( &cinfo, &oWidth, &oHeight, SCALE_MAX );      /*       * (void*) gpuBuf.pBase = physical address to top left corner of buffer       * (unsigned short*) gpuBuf.vBase = virtual address to top left corner of buffer       */      GPU_Factory_Request(ZV_GBUF_FULL_SCREEN,&gpuBuf);      /*       * Start decompressor, the callback and memory pointers for the output       * buffer are passed as parameters       */      (void) zJpegStartDecompress(&cinfo, freeInputBuffer, 0, gpuBuf.vBase, (unsigned long)gpuBuf.pBase); // Buffer assigned internally for now      /*       * Pend on callback indicating decode complete       */      sem_wait(&done);      /*       * Decode time is captured before writing out the file which is subject to       * NFS delays. Of course the input and swap file are also plagued by NFS       * but at least one source of uncertainty is removed...       */      if  (cinfo.err->trace_level)      {        assert(!getitimer(ITIMER_REAL, &timGet1));      }      assert(oWidth  <= OUTPUT_W);      assert(oHeight <= OUTPUT_H);      /*       * Draw LCD display       */      GPU_Factory_BindTexture(&gpuBuf);      display_pixels((void *)gpuBuf.vBase,(unsigned short*)gpuVMem,gpuBuf.offset);      if  (cinfo.err->trace_level)      {        assert(!getitimer(ITIMER_REAL, &timGet2));      }      /*       * Tidy up after decode of a single image, this should be used by any       * application       */      zJpegFinishDecompress(&cinfo);      /*       * Decode & presentation run time output       */      if  (cinfo.err->trace_level)      {        zJpegInstrumentation result;        zJpegGetInstrumentation( &cinfo, &result );        printf("\n%d %u.%ums [%d] %u.%ums [%d] %d %dx%d %dx%d %dx%d\n",               result.ppPackets,               result.zspTimer0ms,               result.zspTimer0hus,               result.zspTimer0oflow,               result.zspTimer1ms,               result.zspTimer1hus,               result.zspTimer1oflow,               result.chromaType,               result.imageWidth,               result.imageHeight,               result.outputWidth,               result.outputHeight,               result.displayWidth,               result.displayHeight);        time = INTERVAL_TIME*1000000 - (timGet1.it_value.tv_sec * 1000000 + timGet1.it_value.tv_usec);        if (time <= 0)          printf("Task Timer Elapsed...\n");        else          printf("[D] %ld.%02lds ", time/1000000, (time%1000000)/10000);        time = INTERVAL_TIME*1000000 - (timGet2.it_value.tv_sec * 1000000 + timGet2.it_value.tv_usec);        if (time <= 0)          printf("Task Timer Elapsed...\n");        else          printf("[P] %ld.%02lds for %s\n", time/1000000, (time%1000000)/10000, argv[file_index]);      }      fclose(input_file);      GPU_Factory_Release(&gpuBuf);      if (presentationDelay)      {        sleep(presentationDelay);      }    }    printf("\nMovie Complete, %d frames in total\n\n", imageCount-2);    zJpegReleaseDecompress(&cinfo);    zevio2d_disable_3dscr();  }  else if (tile == TRUE)  {    /*     * Tiled mode is a derivative of slideshow intended to show (hopefully)     * fast thumbnail drawing without the complexity of queueing images to the     * ZSP. It should give a good indication of the overheads inherent in the     * Linux system without any specific optimization.     */    DIR *dir;    struct dirent *ptr;    int imageCount = 0,        position,        offset,        k = loopCounter;    char imgFile[128]; // Sometimes long paths!    /*     * Initialize the JPEG decompression object     */    if (zJpegCreateDecompress( &cinfo ) != EXIT_SUCCESS)    {      fprintf(stderr, "%s: can't create decompression object\n", progname);      exit(EXIT_FAILURE);    }    /*     * (void*) gpuBuf.pBase = physical address to top left corner of buffer     * (unsigned short*) gpuBuf.vBase = virtual address to top left corner of     * buffer. The buffer is requested once and overwritten by successive     * thumbnails     */    GPU_Factory_Request(ZV_GBUF_FULL_SCREEN,&gpuBuf);    GPU_Factory_BindTexture(&gpuBuf);    printf("Tile Mode, %d loops requested...\n", k);    while (k--)    {      dir = opendir(argv[file_index]);      if (!dir)      {        printf("[ERROR] Failed to open dir '%s'\n", argv[file_index]);        break;      }      else      {        while (NULL != (ptr = readdir(dir)))        {          oWidth  = OUTPUT_W;          oHeight = OUTPUT_H;          if ((!(memcmp(ptr->d_name+strlen(ptr->d_name)-4, ".jpg", 4))) ||                (!(memcmp(ptr->d_name+strlen(ptr->d_name)-4, ".JPG", 4))))          {            /*             * Decode and present an image             */            sprintf(imgFile, "%s", argv[file_index]);            strcat(imgFile, ptr->d_name);            imageCount++;            if (cinfo.err->trace_level)            {              printf("\nTile - decoding %s [%d]\n", imgFile, imageCount);            }            if ((input_file = fopen(imgFile, READ_BINARY)) == NULL)            {              fprintf(stderr, "%s: can't open %s\n", progname, argv[file_index]);              exit(EXIT_FAILURE);            }            if  (cinfo.err->trace_level)            {              timSet.it_interval.tv_sec = INTERVAL_TIME;              timSet.it_interval.tv_usec = 0;              timSet.it_value.tv_sec = INTERVAL_TIME;              timSet.it_value.tv_usec = 0;              assert(!setitimer(ITIMER_REAL, &timSet, NULL));            }            /*             * At this point pZSP  which is the ZEVIO specific 'cinfo' extension can be             * initialized. The intention is that 'cinfo' remains as standard and all             * extensions use the existing 'client_data' pointer to user extensions             *///            pZSP = (struct zjpeg_command *)cinfo.client_data;            zJpegStdioSrc(&cinfo, input_file);            /*             * Read file header which sets the default decompression parameters. At this             * point the ZEVIO decoder can check for an embedded thumbnail, see the logic             * below for details...             */            zJpegReadHeader(&cinfo, TRUE, &thumbnailFound);            if(thumbnailFound == FALSE)            {              fprintf(stderr, "%s: no thumbnail present\n", progname);              zJpegFinishDecompress(&cinfo);              rewind(input_file);              zJpegStdioSrc(&cinfo, input_file);              zJpegReadHeader(&cinfo, FALSE, &thumbnailFound);              oWidth  = 160;              oHeight = 120;            }            /*             * Adjust default decompression parameters by re-parsing the options. In a             * real application the decode parameters must be set after reading the             * header             *///            file_index = parse_switches( &cinfo, argc, argv, 0, TRUE );            cinfo.dct_method          = JDCT_IFAST;            cinfo.quantize_colors     = FALSE;            cinfo.two_pass_quantize   = FALSE;            cinfo.do_fancy_upsampling = FALSE;            cinfo.dither_mode         = JDITHER_ORDERED;            /*             * Scale the image to fit the desired output size. Here we always scale to             * match aspect ratio and maximum 800x600             */            zJpegSetOutputSize( &cinfo, &oWidth, &oHeight, SCALE_MAX );            /*             * All thumbnails are presented at incremting positions within the             * single buffer, use imageCount to locate it             */            position = (imageCount-1)%25;            offset = ((position % 5) * 2560) + ((position / 5) * 245760);            /*             * Start decompressor, the callback and memory pointers for the output             * buffer are passed as parameters             */            (void) zJpegStartDecompress(&cinfo, freeInputBuffer, 0, gpuBuf.vBase + offset, (unsigned long)gpuBuf.pBase + offset); // Buffer assigned internally for now            /*             * Pend on callback indicating decode complete             */            sem_wait(&done);            /*             * Decode time is captured before writing out the file which is subject to             * NFS delays. Of course the input and swap file are also plagued by NFS             * but at least one source of uncertainty is removed...             */            if  (cinfo.err->trace_level)            {              assert(!getitimer(ITIMER_REAL, &timGet1));            }            assert(oWidth  <= OUTPUT_W);            assert(oHeight <= OUTPUT_H);            /*             * Draw LCD display             */            if (!(imageCount%displayCounter))            {              display_pixels((void *)gpuBuf.vBase,(unsigned short*)gpuVMem,gpuBuf.offset);            }            if  (cinfo.err->trace_level)            {              assert(!getitimer(ITIMER_REAL, &timGet2));            }            /*             * Tidy up after decode of a single image, this should be used by any             * application             */            zJpegFinishDecompress(&cinfo);            /*             * Decode & presentation run time output             */            if  (cinfo.err->trace_level)            {              zJpegInstrumentation result;              zJpegGetInstrumentation( &cinfo, &result );              printf("\n%d %u.%ums [%d] %u.%ums [%d] %d %dx%d %dx%d %dx%d\n",                     result.ppPackets,                     result.zspTimer0ms,                     result.zspTimer0hus,                     result.zspTimer0oflow,                     result.zspTimer1ms,                     result.zspTimer1hus,                     result.zspTimer1oflow,                     result.chromaType,                     result.imageWidth,                     result.imageHeight,                     result.outputWidth,                     result.outputHeight,                     result.displayWidth,                     result.displayHeight);              time = INTERVAL_TIME*1000000 - (timGet1.it_value.tv_sec * 1000000 + timGet1.it_value.tv_usec);              if (time <= 0)                printf("Task Timer Elapsed...\n");              else                printf("[D] %ld.%02lds ", time/1000000, (time%1000000)/10000);              time = INTERVAL_TIME*1000000 - (timGet2.it_value.tv_sec * 1000000 + timGet2.it_value.tv_usec);              if (time <= 0)                printf("Task Timer Elapsed...\n");              else                printf("[P] %ld.%02lds for %s\n", time/1000000, (time%1000000)/10000, argv[file_index]);            }            fclose(input_file);            if (presentationDelay)            {              sleep(presentationDelay);            }          }        }      }      closedir(dir);    }    printf("\nTile done, %d images in total\n\n", imageCount);    zJpegReleaseDecompress(&cinfo);    GPU_Factory_Release(&gpuBuf);    zevio2d_disable_3dscr();  }  else // really shouldn't get here  {    assert(0);  }  /*   * Tidy up the JPEG decoder, this should NOT be done unless there is a   * requirement to change ZSP processing to another algorithm.   */  zJpegExit();  /*   * Return the GPU memory, this should be handled accordingly by a real app   */  zevio3d_free( vMem );  return 0;}int main(int argc, char **argv){  zdjpeg(argc, argv);  exit(0);}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女在线视频一区| 亚洲成av人影院| www.视频一区| 亚洲欧美综合在线精品| 欧洲一区在线观看| 天天综合天天综合色| 日韩欧美一级特黄在线播放| 美国精品在线观看| 亚洲国产精品激情在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲精品国产a| 欧美一区二区大片| 国产成人在线视频播放| 亚洲靠逼com| 欧美一二区视频| 成人精品在线视频观看| 亚洲综合视频在线| 欧美高清dvd| 奇米精品一区二区三区在线观看一| 久久久亚洲高清| 91视频com| 久久超碰97中文字幕| 中文字幕亚洲电影| 在线观看91av| 99re8在线精品视频免费播放| 亚洲成人www| 国产精品免费aⅴ片在线观看| 欧美日韩激情在线| 成人丝袜18视频在线观看| 亚洲电影一区二区| 国产日韩欧美a| 91精品国产aⅴ一区二区| 成人动漫视频在线| 免费成人性网站| 亚洲视频一二三区| 精品国产免费人成电影在线观看四季 | 欧美日韩一区二区三区免费看| 久久精品国产一区二区三| 亚洲欧美日韩精品久久久久| 精品国产1区二区| 色婷婷综合久久久久中文一区二区| 蜜臀精品一区二区三区在线观看| 亚洲乱码国产乱码精品精可以看| 欧美大片在线观看| 欧美军同video69gay| 91亚洲午夜精品久久久久久| 国产一区二区调教| 欧美aaaaa成人免费观看视频| 一区二区三区中文在线| 欧美—级在线免费片| 欧美电视剧在线观看完整版| 欧美三级韩国三级日本一级| 成人高清视频免费观看| 国产在线视视频有精品| 日本网站在线观看一区二区三区| 亚洲精品美国一| 国产精品国产自产拍高清av王其| 亚洲精品一区在线观看| 欧美一级欧美一级在线播放| 欧美色综合网站| 在线视频你懂得一区| 本田岬高潮一区二区三区| 国产一区二区看久久| 久久精品国内一区二区三区| 婷婷国产在线综合| 丝袜诱惑制服诱惑色一区在线观看| 亚洲男人电影天堂| 亚洲美女视频在线| 亚洲精品日日夜夜| 亚洲丝袜美腿综合| 亚洲色图另类专区| 亚洲色图都市小说| 亚洲精品久久久久久国产精华液 | 亚洲日本中文字幕区| 久久久.com| 中文字幕精品—区二区四季| 国产日本欧美一区二区| 欧美国产综合一区二区| 亚洲国产精品99久久久久久久久| 欧美国产精品一区二区三区| 欧美激情一区二区三区全黄| 中文幕一区二区三区久久蜜桃| 久久精品亚洲麻豆av一区二区| 2021中文字幕一区亚洲| 久久久精品tv| 国产精品美女久久久久久2018| 中文字幕一区视频| ...xxx性欧美| 亚洲一区影音先锋| 日日摸夜夜添夜夜添亚洲女人| 免费高清在线视频一区·| 精品无人码麻豆乱码1区2区| 国产精品1024| 91蜜桃在线观看| 在线播放中文字幕一区| 日韩免费高清av| 国产欧美视频一区二区| 亚洲色图第一区| 日本亚洲欧美天堂免费| 国产精品性做久久久久久| 成人av网站在线| 欧美日韩在线免费视频| 欧美va亚洲va| 亚洲视频在线一区二区| 视频一区二区欧美| 成人亚洲精品久久久久软件| 欧美性猛片xxxx免费看久爱| 日韩午夜在线观看| 国产精品麻豆欧美日韩ww| 亚洲成人资源在线| 国产一区二区不卡| 在线免费观看日韩欧美| 日韩视频在线观看一区二区| 国产精品无码永久免费888| 一级精品视频在线观看宜春院| 人禽交欧美网站| 91视频xxxx| 久久蜜桃av一区二区天堂| 亚洲最大成人网4388xx| 激情小说欧美图片| 欧美影片第一页| 久久精品欧美日韩精品| 亚洲成av人在线观看| 岛国精品在线观看| 中文字幕第一区综合| 日韩1区2区3区| 99re这里只有精品视频首页| 欧美r级电影在线观看| 亚洲一区二区三区视频在线播放| 国产美女主播视频一区| 欧美挠脚心视频网站| 成人欧美一区二区三区1314| 久久国产精品一区二区| 欧美视频中文字幕| 国产精品久久久久影院色老大| 久久99精品国产.久久久久久| 欧美性受极品xxxx喷水| 中文字幕制服丝袜成人av | 欧美一区二区播放| 一区二区三区日韩精品视频| 国产美女在线观看一区| 欧美一区永久视频免费观看| 一区二区激情小说| 99免费精品视频| 国产午夜精品久久久久久久| 麻豆久久久久久| 91精品国产综合久久久蜜臀粉嫩 | 国产成人精品免费在线| 欧美一区二区三区精品| 亚洲成人精品一区| 欧洲亚洲精品在线| 一区二区中文字幕在线| 国产精品一区二区91| 欧美大片一区二区三区| 日韩国产欧美在线播放| 欧美日韩日本视频| 亚洲1区2区3区4区| 欧美日韩一区国产| 亚洲国产日韩在线一区模特| 色88888久久久久久影院按摩| 亚洲色图一区二区| 99re热这里只有精品免费视频| 国产精品国产自产拍高清av| 成人黄动漫网站免费app| 国产精品水嫩水嫩| 99免费精品在线| 亚洲精品老司机| 欧美日韩一二三| 日韩精品午夜视频| 日韩精品一区二| 黄页网站大全一区二区| 国产亚洲欧美激情| av电影天堂一区二区在线| 综合亚洲深深色噜噜狠狠网站| 99国产欧美久久久精品| 亚洲黄网站在线观看| 欧美日韩三级一区二区| 免费看欧美美女黄的网站| 精品久久久久久无| 丁香激情综合国产| 亚洲免费观看高清完整版在线| 色国产综合视频| 日韩和欧美一区二区三区| 欧美mv和日韩mv国产网站| 国产99久久久国产精品免费看| 中文字幕精品三区| 欧美色精品在线视频| 免费高清视频精品| 亚洲国产精品二十页| 欧美性色黄大片手机版| 久久成人羞羞网站| 国产精品伦理一区二区| 欧美性色黄大片手机版| 久久99九九99精品| 国产精品白丝在线| 3d动漫精品啪啪一区二区竹菊| 国内外精品视频| 亚洲精品你懂的| 欧美精品一区在线观看| 色婷婷综合久久久中文字幕|