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

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

?? jidctint.c

?? About JPEG, executable on Visual C++
?? C
?? 第 1 頁 / 共 2 頁
字號:
////////////////////////////////////////////////////////////////////////
//
//	Note : this file is included as part of the Smaller Animals Software
//	JpegFile package. Though this file has not been modified from it's 
//	original IJG 6a form, it is not the responsibility on the Independent
//	JPEG Group to answer questions regarding this code.
//	
//	Any questions you have about this code should be addressed to :
//
//	CHRISDL@PAGESZ.NET	- the distributor of this package.
//
//	Remember, by including this code in the JpegFile package, Smaller 
//	Animals Software assumes all responsibilities for answering questions
//	about it. If we (SA Software) can't answer your questions ourselves, we 
//	will direct you to people who can.
//
//	Thanks, CDL.
//
////////////////////////////////////////////////////////////////////////

/*
 * jidctint.c
 *
 * Copyright (C) 1991-1996, Thomas G. Lane.
 * This file is part of the Independent JPEG Group's software.
 * For conditions of distribution and use, see the accompanying README file.
 *
 * This file contains a slow-but-accurate integer implementation of the
 * inverse DCT (Discrete Cosine Transform).  In the IJG code, this routine
 * must also perform dequantization of the input coefficients.
 *
 * A 2-D IDCT can be done by 1-D IDCT on each column followed by 1-D IDCT
 * on each row (or vice versa, but it's more convenient to emit a row at
 * a time).  Direct algorithms are also available, but they are much more
 * complex and seem not to be any faster when reduced to code.
 *
 * This implementation is based on an algorithm described in
 *   C. Loeffler, A. Ligtenberg and G. Moschytz, "Practical Fast 1-D DCT
 *   Algorithms with 11 Multiplications", Proc. Int'l. Conf. on Acoustics,
 *   Speech, and Signal Processing 1989 (ICASSP '89), pp. 988-991.
 * The primary algorithm described there uses 11 multiplies and 29 adds.
 * We use their alternate method with 12 multiplies and 32 adds.
 * The advantage of this method is that no data path contains more than one
 * multiplication; this allows a very simple and accurate implementation in
 * scaled fixed-point arithmetic, with a minimal number of shifts.
 */

#define JPEG_INTERNALS
#include "jinclude.h"
#include "jpeglib.h"
#include "jdct.h"		/* Private declarations for DCT subsystem */

#ifdef DCT_ISLOW_SUPPORTED


/*
 * This module is specialized to the case DCTSIZE = 8.
 */

#if DCTSIZE != 8
  Sorry, this code only copes with 8x8 DCTs. /* deliberate syntax err */
#endif


/*
 * The poop on this scaling stuff is as follows:
 *
 * Each 1-D IDCT step produces outputs which are a factor of sqrt(N)
 * larger than the true IDCT outputs.  The final outputs are therefore
 * a factor of N larger than desired; since N=8 this can be cured by
 * a simple right shift at the end of the algorithm.  The advantage of
 * this arrangement is that we save two multiplications per 1-D IDCT,
 * because the y0 and y4 inputs need not be divided by sqrt(N).
 *
 * We have to do addition and subtraction of the integer inputs, which
 * is no problem, and multiplication by fractional constants, which is
 * a problem to do in integer arithmetic.  We multiply all the constants
 * by CONST_SCALE and convert them to integer constants (thus retaining
 * CONST_BITS bits of precision in the constants).  After doing a
 * multiplication we have to divide the product by CONST_SCALE, with proper
 * rounding, to produce the correct output.  This division can be done
 * cheaply as a right shift of CONST_BITS bits.  We postpone shifting
 * as long as possible so that partial sums can be added together with
 * full fractional precision.
 *
 * The outputs of the first pass are scaled up by PASS1_BITS bits so that
 * they are represented to better-than-integral precision.  These outputs
 * require BITS_IN_JSAMPLE + PASS1_BITS + 3 bits; this fits in a 16-bit word
 * with the recommended scaling.  (To scale up 12-bit sample data further, an
 * intermediate INT32 array would be needed.)
 *
 * To avoid overflow of the 32-bit intermediate results in pass 2, we must
 * have BITS_IN_JSAMPLE + CONST_BITS + PASS1_BITS <= 26.  Error analysis
 * shows that the values given below are the most effective.
 */

#if BITS_IN_JSAMPLE == 8
#define CONST_BITS  13
#define PASS1_BITS  2
#else
#define CONST_BITS  13
#define PASS1_BITS  1		/* lose a little precision to avoid overflow */
#endif

/* Some C compilers fail to reduce "FIX(constant)" at compile time, thus
 * causing a lot of useless floating-point operations at run time.
 * To get around this we use the following pre-calculated constants.
 * If you change CONST_BITS you may want to add appropriate values.
 * (With a reasonable C compiler, you can just rely on the FIX() macro...)
 */

#if CONST_BITS == 13
#define FIX_0_298631336  ((INT32)  2446)	/* FIX(0.298631336) */
#define FIX_0_390180644  ((INT32)  3196)	/* FIX(0.390180644) */
#define FIX_0_541196100  ((INT32)  4433)	/* FIX(0.541196100) */
#define FIX_0_765366865  ((INT32)  6270)	/* FIX(0.765366865) */
#define FIX_0_899976223  ((INT32)  7373)	/* FIX(0.899976223) */
#define FIX_1_175875602  ((INT32)  9633)	/* FIX(1.175875602) */
#define FIX_1_501321110  ((INT32)  12299)	/* FIX(1.501321110) */
#define FIX_1_847759065  ((INT32)  15137)	/* FIX(1.847759065) */
#define FIX_1_961570560  ((INT32)  16069)	/* FIX(1.961570560) */
#define FIX_2_053119869  ((INT32)  16819)	/* FIX(2.053119869) */
#define FIX_2_562915447  ((INT32)  20995)	/* FIX(2.562915447) */
#define FIX_3_072711026  ((INT32)  25172)	/* FIX(3.072711026) */
#else
#define FIX_0_298631336  FIX(0.298631336)
#define FIX_0_390180644  FIX(0.390180644)
#define FIX_0_541196100  FIX(0.541196100)
#define FIX_0_765366865  FIX(0.765366865)
#define FIX_0_899976223  FIX(0.899976223)
#define FIX_1_175875602  FIX(1.175875602)
#define FIX_1_501321110  FIX(1.501321110)
#define FIX_1_847759065  FIX(1.847759065)
#define FIX_1_961570560  FIX(1.961570560)
#define FIX_2_053119869  FIX(2.053119869)
#define FIX_2_562915447  FIX(2.562915447)
#define FIX_3_072711026  FIX(3.072711026)
#endif


/* Multiply an INT32 variable by an INT32 constant to yield an INT32 result.
 * For 8-bit samples with the recommended scaling, all the variable
 * and constant values involved are no more than 16 bits wide, so a
 * 16x16->32 bit multiply can be used instead of a full 32x32 multiply.
 * For 12-bit samples, a full 32-bit multiplication will be needed.
 */

#if BITS_IN_JSAMPLE == 8
#define MULTIPLY(var,const)  MULTIPLY16C16(var,const)
#else
#define MULTIPLY(var,const)  ((var) * (const))
#endif


/* Dequantize a coefficient by multiplying it by the multiplier-table
 * entry; produce an int result.  In this module, both inputs and result
 * are 16 bits or less, so either int or short multiply will work.
 */

#define DEQUANTIZE(coef,quantval)  (((ISLOW_MULT_TYPE) (coef)) * (quantval))


/*
 * Perform dequantization and inverse DCT on one block of coefficients.
 */

GLOBAL(void)
jpeg_idct_islow (j_decompress_ptr cinfo, jpeg_component_info * compptr,
		 JCOEFPTR coef_block,
		 JSAMPARRAY output_buf, JDIMENSION output_col)
{
  INT32 tmp0, tmp1, tmp2, tmp3;
  INT32 tmp10, tmp11, tmp12, tmp13;
  INT32 z1, z2, z3, z4, z5;
  JCOEFPTR inptr;
  ISLOW_MULT_TYPE * quantptr;
  int * wsptr;
  JSAMPROW outptr;
  JSAMPLE *range_limit = IDCT_range_limit(cinfo);
  int ctr;
  int workspace[DCTSIZE2];	/* buffers data between passes */
  SHIFT_TEMPS

  /* Pass 1: process columns from input, store into work array. */
  /* Note results are scaled up by sqrt(8) compared to a true IDCT; */
  /* furthermore, we scale the results by 2**PASS1_BITS. */

  inptr = coef_block;
  quantptr = (ISLOW_MULT_TYPE *) compptr->dct_table;
  wsptr = workspace;
  for (ctr = DCTSIZE; ctr > 0; ctr--) {
    /* Due to quantization, we will usually find that many of the input
     * coefficients are zero, especially the AC terms.  We can exploit this
     * by short-circuiting the IDCT calculation for any column in which all
     * the AC terms are zero.  In that case each output is equal to the
     * DC coefficient (with scale factor as needed).
     * With typical images and quantization tables, half or more of the
     * column DCT calculations can be simplified this way.
     */
    
    if ((inptr[DCTSIZE*1] | inptr[DCTSIZE*2] | inptr[DCTSIZE*3] |
	 inptr[DCTSIZE*4] | inptr[DCTSIZE*5] | inptr[DCTSIZE*6] |
	 inptr[DCTSIZE*7]) == 0) {
      /* AC terms all zero */
      int dcval = DEQUANTIZE(inptr[DCTSIZE*0], quantptr[DCTSIZE*0]) << PASS1_BITS;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久欧美中文字幕| 蜜桃视频一区二区| 国产精品久久一级| 国产欧美日韩综合| 久久久国际精品| 国产亚洲精品久| 国产欧美日韩亚州综合| 日本一区二区三区在线不卡| 久久久久久久综合日本| 精品国产免费人成电影在线观看四季 | 天天操天天色综合| 日韩高清国产一区在线| 蜜臀av性久久久久av蜜臀妖精| 日韩av网站在线观看| 日本午夜精品一区二区三区电影| 日韩和欧美一区二区三区| 日产国产高清一区二区三区 | 精品美女一区二区| 精品久久久久久久久久久久久久久 | 亚洲精品你懂的| 亚洲影视在线观看| 肉色丝袜一区二区| 蜜桃视频在线观看一区二区| 激情小说欧美图片| av电影在线观看一区| 在线观看免费成人| 欧美一级片在线看| 国产欧美一区二区在线| 亚洲图片另类小说| 亚洲6080在线| 国产麻豆9l精品三级站| 99视频精品在线| 678五月天丁香亚洲综合网| 日韩欧美国产1| 国产精品久久久久久久久久久免费看 | 国产午夜一区二区三区| 亚洲视频一区二区在线| 日韩高清在线一区| 国产一二精品视频| 在线观看亚洲一区| 精品久久一区二区| 亚洲精品你懂的| 久久成人av少妇免费| 99视频精品免费视频| 欧美一区二区视频在线观看2020| 久久久久久**毛片大全| 亚洲一二三级电影| 激情五月婷婷综合| 欧美系列一区二区| 国产亚洲欧美一区在线观看| 亚洲成人1区2区| 夫妻av一区二区| 在线播放国产精品二区一二区四区| 久久午夜国产精品| 亚洲成人自拍偷拍| 成人免费毛片片v| 91精品在线麻豆| 日韩毛片精品高清免费| 国产一区二区三区高清播放| 欧美日韩一本到| 国产精品毛片a∨一区二区三区| 91高清视频在线| 久久综合九色欧美综合狠狠| 亚洲国产你懂的| 成人高清在线视频| 精品粉嫩超白一线天av| 亚洲一区在线观看免费观看电影高清 | 日本中文字幕一区二区有限公司| av中文字幕亚洲| 欧美一区二区三级| 一区二区三区久久| 成人自拍视频在线| 日韩欧美电影一二三| 一区二区成人在线视频| 粉嫩欧美一区二区三区高清影视 | 亚洲一区二区三区自拍| www.亚洲色图.com| 欧美成人精品福利| 婷婷国产在线综合| 日本久久电影网| 国产精品久线观看视频| 国产美女在线观看一区| 欧美一区二区高清| 亚洲第一会所有码转帖| 91在线视频观看| 欧美激情中文字幕一区二区| 狠狠色丁香久久婷婷综合_中| 欧美另类高清zo欧美| 玉足女爽爽91| 暴力调教一区二区三区| 欧美激情一区二区三区在线| 久久99蜜桃精品| 欧美一区二区视频网站| 日韩精品国产欧美| 欧美三级一区二区| 一区二区视频在线看| 99国产精品视频免费观看| 国产欧美一区二区精品秋霞影院| 精品制服美女久久| 欧美电影免费观看高清完整版在线 | 欧美在线免费播放| 亚洲最大成人网4388xx| 色综合久久中文字幕| 1024成人网| 91免费观看在线| 亚洲视频免费在线| 91传媒视频在线播放| 亚洲欧美精品午睡沙发| 在线看日韩精品电影| 亚洲h在线观看| 欧美精品精品一区| 免费观看一级特黄欧美大片| 6080亚洲精品一区二区| 麻豆精品久久久| ww久久中文字幕| 国产精一品亚洲二区在线视频| 久久综合色婷婷| 国产成a人亚洲精品| 国产精品久99| 91麻豆国产自产在线观看| 亚洲精品自拍动漫在线| 欧洲一区二区三区免费视频| 日韩国产精品久久久| 欧美一级二级三级蜜桃| 国产一区二区成人久久免费影院 | 国产精品一区二区久久不卡 | 亚洲成av人片一区二区三区| 欧美伦理视频网站| 精品一区二区三区免费| 国产性做久久久久久| 91网上在线视频| 天天色天天操综合| 久久无码av三级| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲国产综合色| 欧美不卡视频一区| 不卡的电影网站| 亚洲国产日韩精品| 日韩区在线观看| 成人午夜电影网站| 亚洲妇女屁股眼交7| 精品美女一区二区| 99re66热这里只有精品3直播 | 国产一区二区三区在线看麻豆| 国产日韩亚洲欧美综合| 色丁香久综合在线久综合在线观看| 偷拍日韩校园综合在线| 久久九九99视频| 在线观看三级视频欧美| 久久精品国产秦先生| 国产精品久久毛片a| 欧美日韩亚洲国产综合| 国产高清亚洲一区| 亚洲3atv精品一区二区三区| 久久久精品人体av艺术| 欧美视频一区二区在线观看| 精东粉嫩av免费一区二区三区| 中文字幕制服丝袜一区二区三区| 欧美在线观看一区| 风流少妇一区二区| 日本成人在线网站| 中文字幕五月欧美| 精品久久人人做人人爰| 91久久线看在观草草青青| 韩国午夜理伦三级不卡影院| 一区二区三区在线影院| 久久免费午夜影院| 欧美色图第一页| 懂色一区二区三区免费观看| 日本不卡一二三| 一区二区三区久久| 欧美国产精品v| 精品少妇一区二区三区在线播放 | 欧美一区二区免费| 色综合久久久久网| 国产风韵犹存在线视精品| 日本视频免费一区| 亚洲永久免费视频| 亚洲视频图片小说| 国产日韩欧美不卡在线| 日韩欧美国产成人一区二区| 欧美日韩高清一区| 一本大道久久a久久综合| 国产高清不卡一区二区| 美国毛片一区二区三区| 亚洲成人动漫在线观看| 亚洲欧美成人一区二区三区| 中文字幕高清一区| 精品不卡在线视频| 日韩无一区二区| 欧美日韩大陆在线| 欧美三级电影在线看| 91国偷自产一区二区开放时间| 成人性色生活片| 国产福利精品一区| 国产乱码精品一区二区三| 蜜臀91精品一区二区三区| 日本大胆欧美人术艺术动态| 午夜激情一区二区| 亚洲第一成年网|