⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jddctmgr.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 2 页
字号:
000062  b329              CBZ      r1,|L2.176|
000064  6941              LDR      r1,[r0,#0x14]
000066  42b1              CMP      r1,r6
000068  d02a              BEQ      |L2.192|
;;;151          continue;
;;;152        qtbl = compptr->quant_table;
;;;153        if (qtbl == NULL)		/* happens if no data yet for component */
00006a  6ce9              LDR      r1,[r5,#0x4c]
00006c  b301              CBZ      r1,|L2.176|
;;;154          continue;
;;;155        idct->cur_method[ci] = method;
;;;156        switch (method) {
00006e  6146              STR      r6,[r0,#0x14]
000070  b136              CBZ      r6,|L2.128|
000072  2e01              CMP      r6,#1
000074  d11d              BNE      |L2.178|
;;;157    #ifdef PROVIDE_ISLOW_TABLES
;;;158        case JDCT_ISLOW:
;;;159          {
;;;160    	/* For LL&M IDCT method, multipliers are equal to raw quantization
;;;161    	 * coefficients, but are stored as ints to ensure access efficiency.
;;;162    	 */
;;;163    	ISLOW_MULT_TYPE * ismtbl = (ISLOW_MULT_TYPE *) compptr->dct_table;
;;;164    	for (i = 0; i < DCTSIZE2; i++) {
;;;165    	  ismtbl[i] = (ISLOW_MULT_TYPE) qtbl->quantval[i];
;;;166    	}
;;;167          }
;;;168          break;
;;;169    #endif
;;;170    #ifdef DCT_IFAST_SUPPORTED
;;;171        case JDCT_IFAST:
;;;172          {
;;;173    	/* For AA&N IDCT method, multipliers are equal to quantization
;;;174    	 * coefficients scaled by scalefactor[row]*scalefactor[col], where
;;;175    	 *   scalefactor[0] = 1
;;;176    	 *   scalefactor[k] = cos(k*PI/16) * sqrt(2)    for k=1..7
;;;177    	 * For integer operation, the multiplier table is to be scaled by
;;;178    	 * IFAST_SCALE_BITS.
;;;179    	 */
;;;180    	IFAST_MULT_TYPE * ifmtbl = (IFAST_MULT_TYPE *) compptr->dct_table;
;;;181    #define CONST_BITS 14
;;;182    	static const INT16 aanscales[DCTSIZE2] = {
;;;183    	  /* precomputed values scaled up by 14 bits */
;;;184    	  16384, 22725, 21407, 19266, 16384, 12873,  8867,  4520,
;;;185    	  22725, 31521, 29692, 26722, 22725, 17855, 12299,  6270,
;;;186    	  21407, 29692, 27969, 25172, 21407, 16819, 11585,  5906,
;;;187    	  19266, 26722, 25172, 22654, 19266, 15137, 10426,  5315,
;;;188    	  16384, 22725, 21407, 19266, 16384, 12873,  8867,  4520,
;;;189    	  12873, 17855, 16819, 15137, 12873, 10114,  6967,  3552,
;;;190    	   8867, 12299, 11585, 10426,  8867,  6967,  4799,  2446,
;;;191    	   4520,  6270,  5906,  5315,  4520,  3552,  2446,  1247
;;;192    	};
;;;193    	SHIFT_TEMPS
;;;194    
;;;195    	for (i = 0; i < DCTSIZE2; i++) {
000076  2000              MOVS     r0,#0
;;;196    	  ifmtbl[i] = (IFAST_MULT_TYPE)
000078  f8dfc05c          LDR      r12,|L2.216|
00007c  6d2b              LDR      r3,[r5,#0x50]         ;195
00007e  e009              B        |L2.148|
                  |L2.128|
000080  6d2b              LDR      r3,[r5,#0x50]         ;164
000082  2000              MOVS     r0,#0                 ;164
                  |L2.132|
000084  f8312010          LDRH     r2,[r1,r0,LSL #1]     ;165
000088  f8432020          STR      r2,[r3,r0,LSL #2]     ;165
00008c  1c40              ADDS     r0,r0,#1              ;164
00008e  2840              CMP      r0,#0x40              ;164
000090  dbf8              BLT      |L2.132|
000092  e015              B        |L2.192|
                  |L2.148|
000094  f8312010          LDRH     r2,[r1,r0,LSL #1]
000098  f93ce010          LDRSH    lr,[r12,r0,LSL #1]
00009c  fb02f20e          MUL      r2,r2,lr
0000a0  f5026200          ADD      r2,r2,#0x800
0000a4  1312              ASRS     r2,r2,#12
0000a6  f8432020          STR      r2,[r3,r0,LSL #2]
0000aa  1c40              ADDS     r0,r0,#1              ;195
0000ac  2840              CMP      r0,#0x40              ;195
0000ae  dbf1              BLT      |L2.148|
                  |L2.176|
0000b0  e006              B        |L2.192|
                  |L2.178|
;;;197    	    DESCALE(MULTIPLY16V16((INT32) qtbl->quantval[i],
;;;198    				  (INT32) aanscales[i]),
;;;199    		    CONST_BITS-IFAST_SCALE_BITS);
;;;200    	}
;;;201          }
;;;202          break;
;;;203    #endif
;;;204    #ifdef DCT_FLOAT_SUPPORTED
;;;205        case JDCT_FLOAT:
;;;206          {
;;;207    	/* For float AA&N IDCT method, multipliers are equal to quantization
;;;208    	 * coefficients scaled by scalefactor[row]*scalefactor[col], where
;;;209    	 *   scalefactor[0] = 1
;;;210    	 *   scalefactor[k] = cos(k*PI/16) * sqrt(2)    for k=1..7
;;;211    	 */
;;;212    	FLOAT_MULT_TYPE * fmtbl = (FLOAT_MULT_TYPE *) compptr->dct_table;
;;;213    	int row, col;
;;;214    	static const double aanscalefactor[DCTSIZE] = {
;;;215    	  1.0, 1.387039845, 1.306562965, 1.175875602,
;;;216    	  1.0, 0.785694958, 0.541196100, 0.275899379
;;;217    	};
;;;218    
;;;219    	i = 0;
;;;220    	for (row = 0; row < DCTSIZE; row++) {
;;;221    	  for (col = 0; col < DCTSIZE; col++) {
;;;222    	    fmtbl[i] = (FLOAT_MULT_TYPE)
;;;223    	      ((double) qtbl->quantval[i] *
;;;224    	       aanscalefactor[row] * aanscalefactor[col]);
;;;225    	    i++;
;;;226    	  }
;;;227    	}
;;;228          }
;;;229          break;
;;;230    #endif
;;;231        default:
;;;232          ERREXIT(cinfo, JERR_NOT_COMPILED);
0000b2  6821              LDR      r1,[r4,#0]
0000b4  f8c1a014          STR      r10,[r1,#0x14]
0000b8  6820              LDR      r0,[r4,#0]
0000ba  6801              LDR      r1,[r0,#0]
0000bc  4620              MOV      r0,r4
0000be  4788              BLX      r1
                  |L2.192|
0000c0  1c7f              ADDS     r7,r7,#1              ;96
0000c2  3554              ADDS     r5,r5,#0x54           ;96
                  |L2.196|
0000c4  6a60              LDR      r0,[r4,#0x24]         ;96
0000c6  42b8              CMP      r0,r7                 ;96
0000c8  dca7              BGT      |L2.26|
;;;233          break;
;;;234        }
;;;235      }
;;;236    }
0000ca  e8bd87f0          POP      {r4-r10,pc}
;;;237    
                          ENDP

0000ce  0000              DCW      0x0000
                  |L2.208|
                          DCD      jpeg_idct_ifast
                  |L2.212|
                          DCD      jpeg_idct_islow
                  |L2.216|
                          DCD      ||.constdata||

                          AREA ||.constdata||, DATA, READONLY, ALIGN=1

                  aanscales
000000  400058c5          DCW      0x4000,0x58c5
000004  539f4b42          DCW      0x539f,0x4b42
000008  40003249          DCW      0x4000,0x3249
00000c  22a311a8          DCW      0x22a3,0x11a8
000010  58c57b21          DCW      0x58c5,0x7b21
000014  73fc6862          DCW      0x73fc,0x6862
000018  58c545bf          DCW      0x58c5,0x45bf
00001c  300b187e          DCW      0x300b,0x187e
000020  539f73fc          DCW      0x539f,0x73fc
000024  6d416254          DCW      0x6d41,0x6254
000028  539f41b3          DCW      0x539f,0x41b3
00002c  2d411712          DCW      0x2d41,0x1712
000030  4b426862          DCW      0x4b42,0x6862
000034  6254587e          DCW      0x6254,0x587e
000038  4b423b21          DCW      0x4b42,0x3b21
00003c  28ba14c3          DCW      0x28ba,0x14c3
000040  400058c5          DCW      0x4000,0x58c5
000044  539f4b42          DCW      0x539f,0x4b42
000048  40003249          DCW      0x4000,0x3249
00004c  22a311a8          DCW      0x22a3,0x11a8
000050  324945bf          DCW      0x3249,0x45bf
000054  41b33b21          DCW      0x41b3,0x3b21
000058  32492782          DCW      0x3249,0x2782
00005c  1b370de0          DCW      0x1b37,0x0de0
000060  22a3300b          DCW      0x22a3,0x300b
000064  2d4128ba          DCW      0x2d41,0x28ba
000068  22a31b37          DCW      0x22a3,0x1b37
00006c  12bf098e          DCW      0x12bf,0x098e
000070  11a8187e          DCW      0x11a8,0x187e
000074  171214c3          DCW      0x1712,0x14c3
000078  11a80de0          DCW      0x11a8,0x0de0
00007c  098e04df          DCW      0x098e,0x04df

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -