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

📄 jquant1.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000080  1c7a              ADDS     r2,r7,#1
000082  4617              MOV      r7,r2
000084  f1a90301          SUB      r3,r9,#1
000088  4631              MOV      r1,r6
00008a  9800              LDR      r0,[sp,#0]
00008c  f7fffffe          BL       largest_input_value
                  |L4.144|
000090  4285              CMP      r5,r0                 ;379
000092  dcf5              BGT      |L4.128|
;;;381          /* premultiply so that no multiplication needed in main processing */
;;;382          indexptr[j] = (JSAMPLE) (val * blksize);
000094  fb07f10a          MUL      r1,r7,r10
000098  1c6a              ADDS     r2,r5,#1              ;378
00009a  5561              STRB     r1,[r4,r5]
00009c  4615              MOV      r5,r2                 ;378
00009e  2aff              CMP      r2,#0xff              ;378
0000a0  ddf6              BLE      |L4.144|
;;;383        }
;;;384        /* Pad at both ends if necessary */
;;;385        if (pad)
0000a2  f1bb0f00          CMP      r11,#0
0000a6  d00b              BEQ      |L4.192|
;;;386          for (j = 1; j <= MAXJSAMPLE; j++) {
0000a8  2001              MOVS     r0,#1
                  |L4.170|
;;;387    	indexptr[-j] = indexptr[0];
0000aa  1a23              SUBS     r3,r4,r0
0000ac  7822              LDRB     r2,[r4,#0]
;;;388    	indexptr[MAXJSAMPLE+j] = indexptr[MAXJSAMPLE];
0000ae  1821              ADDS     r1,r4,r0
0000b0  701a              STRB     r2,[r3,#0]            ;387
0000b2  f89420ff          LDRB     r2,[r4,#0xff]
0000b6  1c40              ADDS     r0,r0,#1              ;386
0000b8  28ff              CMP      r0,#0xff              ;386
0000ba  f88120ff          STRB     r2,[r1,#0xff]
0000be  ddf4              BLE      |L4.170|
                  |L4.192|
0000c0  1c76              ADDS     r6,r6,#1              ;364
                  |L4.194|
0000c2  9800              LDR      r0,[sp,#0]            ;364
0000c4  6f80              LDR      r0,[r0,#0x78]         ;364
0000c6  42b0              CMP      r0,r6                 ;364
0000c8  dcbc              BGT      |L4.68|
;;;389          }
;;;390      }
;;;391    }
0000ca  e8bd8ff8          POP      {r3-r11,pc}
;;;392    
                          ENDP


                          AREA ||i.create_colormap||, CODE, READONLY, ALIGN=1

                  create_colormap PROC
;;;276    LOCAL(void)
;;;277    create_colormap (j_decompress_ptr cinfo)
000000  e92d5ff0          PUSH     {r4-r12,lr}
;;;278    {
;;;279      my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;
;;;280      JSAMPARRAY colormap;		/* Created colormap */
;;;281      int total_colors;		/* Number of distinct output colors */
;;;282      int i,j,k, nci, blksize, blkdist, ptr, val;
;;;283    
;;;284      /* Select number of colors for each component */
;;;285      total_colors = select_ncolors(cinfo, cquantize->Ncolors);
000004  f8d0b1cc          LDR      r11,[r0,#0x1cc]
000008  4680              MOV      r8,r0                 ;278
00000a  f10b0120          ADD      r1,r11,#0x20
00000e  f7fffffe          BL       select_ncolors
000012  4681              MOV      r9,r0
;;;286    
;;;287      /* Report selected color counts */
;;;288      if (cinfo->out_color_components == 3)
000014  f8d80078          LDR      r0,[r8,#0x78]
000018  2803              CMP      r0,#3
00001a  d111              BNE      |L5.64|
;;;289        TRACEMS4(cinfo, 1, JTRC_QUANT_3_NCOLORS,
00001c  f8d80000          LDR      r0,[r8,#0]
000020  f8c09018          STR      r9,[r0,#0x18]
000024  f8db1020          LDR      r1,[r11,#0x20]
000028  61c1              STR      r1,[r0,#0x1c]
00002a  f8db1024          LDR      r1,[r11,#0x24]
00002e  6201              STR      r1,[r0,#0x20]
000030  f8db1028          LDR      r1,[r11,#0x28]
000034  6241              STR      r1,[r0,#0x24]
000036  f8d80000          LDR      r0,[r8,#0]
00003a  215e              MOVS     r1,#0x5e
00003c  6141              STR      r1,[r0,#0x14]
00003e  e007              B        |L5.80|
                  |L5.64|
;;;290    	     total_colors, cquantize->Ncolors[0],
;;;291    	     cquantize->Ncolors[1], cquantize->Ncolors[2]);
;;;292      else
;;;293        TRACEMS1(cinfo, 1, JTRC_QUANT_NCOLORS, total_colors);
000040  f8d80000          LDR      r0,[r8,#0]
000044  215f              MOVS     r1,#0x5f
000046  6141              STR      r1,[r0,#0x14]
000048  f8d80000          LDR      r0,[r8,#0]
00004c  f8c09018          STR      r9,[r0,#0x18]
                  |L5.80|
000050  f8d80000          LDR      r0,[r8,#0]
000054  2101              MOVS     r1,#1
000056  6842              LDR      r2,[r0,#4]
000058  4640              MOV      r0,r8
00005a  4790              BLX      r2
;;;294    
;;;295      /* Allocate and fill in the colormap. */
;;;296      /* The colors are ordered in the map in standard row-major order, */
;;;297      /* i.e. rightmost (highest-indexed) color changes most rapidly. */
;;;298    
;;;299      colormap = (*cinfo->mem->alloc_sarray)
00005c  f8d80004          LDR      r0,[r8,#4]
000060  f8d83078          LDR      r3,[r8,#0x78]
000064  6884              LDR      r4,[r0,#8]
000066  464a              MOV      r2,r9
000068  2101              MOVS     r1,#1
00006a  4640              MOV      r0,r8
00006c  47a0              BLX      r4
;;;300        ((j_common_ptr) cinfo, JPOOL_IMAGE,
;;;301         (JDIMENSION) total_colors, (JDIMENSION) cinfo->out_color_components);
;;;302    
;;;303      /* blksize is number of adjacent repeated entries for a component */
;;;304      /* blkdist is distance between groups of identical entries for a component */
;;;305      blkdist = total_colors;
00006e  46ca              MOV      r10,r9
;;;306    
;;;307      for (i = 0; i < cinfo->out_color_components; i++) {
000070  2400              MOVS     r4,#0
000072  e028              B        |L5.198|
                  |L5.116|
;;;308        /* fill in colormap entries for i'th color component */
;;;309        nci = cquantize->Ncolors[i]; /* # of distinct values for this color */
000074  eb0b0184          ADD      r1,r11,r4,LSL #2
;;;310        blksize = blkdist / nci;
000078  f8d1e020          LDR      lr,[r1,#0x20]
;;;311        for (j = 0; j < nci; j++) {
00007c  2300              MOVS     r3,#0
00007e  fb9af5fe          SDIV     r5,r10,lr             ;310
000082  e01c              B        |L5.190|
                  |L5.132|
;;;312          /* Compute j'th output value (out of nci) for component */
;;;313          val = output_value(cinfo, i, j, nci-1);
000084  f1ae0101          SUB      r1,lr,#1
000088  ebc32203          RSB      r2,r3,r3,LSL #8
00008c  eb0176d1          ADD      r6,r1,r1,LSR #31
000090  eb020266          ADD      r2,r2,r6,ASR #1
000094  fb92f1f1          SDIV     r1,r2,r1
;;;314          /* Fill in all colormap entries that have this value of this component */
;;;315          for (ptr = j * blksize; ptr < total_colors; ptr += blkdist) {
000098  fb03f205          MUL      r2,r3,r5
;;;316    	/* fill in blksize entries beginning at ptr */
;;;317    	for (k = 0; k < blksize; k++)
;;;318    	  colormap[i][ptr+k] = (JSAMPLE) val;
00009c  b2ce              UXTB     r6,r1
00009e  e00b              B        |L5.184|
                  |L5.160|
0000a0  2100              MOVS     r1,#0                 ;317
0000a2  e006              B        |L5.178|
                  |L5.164|
0000a4  f8507024          LDR      r7,[r0,r4,LSL #2]
0000a8  eb020c01          ADD      r12,r2,r1
0000ac  f807600c          STRB     r6,[r7,r12]
0000b0  1c49              ADDS     r1,r1,#1              ;317
                  |L5.178|
0000b2  42a9              CMP      r1,r5                 ;317
0000b4  dbf6              BLT      |L5.164|
0000b6  4452              ADD      r2,r2,r10             ;315
                  |L5.184|
0000b8  454a              CMP      r2,r9                 ;315
0000ba  dbf1              BLT      |L5.160|
0000bc  1c5b              ADDS     r3,r3,#1              ;311
                  |L5.190|
0000be  4573              CMP      r3,lr                 ;311
0000c0  dbe0              BLT      |L5.132|
;;;319          }
;;;320        }
;;;321        blkdist = blksize;		/* blksize of this color is blkdist of next */
0000c2  46aa              MOV      r10,r5
0000c4  1c64              ADDS     r4,r4,#1              ;307
                  |L5.198|
0000c6  f8d81078          LDR      r1,[r8,#0x78]         ;307
0000ca  42a1              CMP      r1,r4                 ;307
0000cc  dcd2              BGT      |L5.116|
;;;322      }
;;;323    
;;;324      /* Save the colormap in private storage,
;;;325       * where it will survive color quantization mode changes.
;;;326       */
;;;327      cquantize->sv_colormap = colormap;
;;;328      cquantize->sv_actual = total_colors;
;;;329    }
0000ce  e9cb0904          STRD     r0,r9,[r11,#0x10]
0000d2  e8bd9ff0          POP      {r4-r12,pc}
;;;330    
                          ENDP


                          AREA ||i.create_odither_tables||, CODE, READONLY, ALIGN=2

                  create_odither_tables PROC
;;;435    LOCAL(void)
;;;436    create_odither_tables (j_decompress_ptr cinfo)
000000  e92d47f0          PUSH     {r4-r10,lr}
;;;437    {
000004  4680              MOV      r8,r0
;;;438      my_cquantize_ptr cquantize = (my_cquantize_ptr) cinfo->cquantize;
;;;439      ODITHER_MATRIX_PTR odither;
;;;440      int i, j, nci;
;;;441    
;;;442      for (i = 0; i < cinfo->out_color_components; i++) {
000006  2400              MOVS     r4,#0
000008  f8d051cc          LDR      r5,[r0,#0x1cc]
00000c  e046              B        |L6.156|
;;;443        nci = cquantize->Ncolors[i]; /* # of distinct values for this color */
00000e  bf00              NOP      
                  |L6.16|
000010  eb050084          ADD      r0,r5,r4,LSL #2
000014  4681              MOV      r9,r0
;;;444        odither = NULL;		/* search for matching prior component */
000016  6a06              LDR      r6,[r0,#0x20]
000018  2000              MOVS     r0,#0
;;;445        for (j = 0; j < i; j++) {
00001a  4601              MOV      r1,r0
00001c  e00a              B        |L6.52|
;;;446          if (nci == cquantize->Ncolors[j]) {
00001e  bf00              NOP      
                  |L6.32|
000020  eb050281          ADD      r2,r5,r1,LSL #2
000024  6a12              LDR      r2,[r2,#0x20]
000026  42b2              CMP      r2,r6
000028  d103              BNE      |L6.50|
;;;447    	odither = cquantize->odither[j];
00002a  eb050081          ADD      r0,r5,r1,LSL #2
00002e  6b40              LDR      r0,[r0,#0x34]
;;;448    	break;
000030  e002              B        |L6.56|
                  |L6.50|
000032  1c49              ADDS     r1,r1,#1              ;445
                  |L6.52|
000034  42a1              CMP      r1,r4                 ;445
000036  dbf3              BLT      |L6.32|
                  |L6.56|
;;;449          }
;;;450        }
;;;451        if (odither == NULL)	/* need a new table? */
000038  bb68              CBNZ     r0,|L6.150|
00003a  f8d80004          LDR      r0,[r8,#4]
00003e  f44f6280          MOV      r2,#0x400
000042  6803              LDR      r3,[r0,#0]
000044  2101              MOVS     r1,#1
000046  4640              MOV      r0,r8
000048  4798              BLX      r3
00004a  ea4f2646          LSL      r6,r6,#9
00004e  f8dfa058          LDR      r10,|L6.168|
000052  f5a67600          SUB      r6,r6,#0x200
000056  2200              MOVS     r2,#0
000058  f04f0cff          MOV      r12,#0xff
                  |L6.92|
00005c  2100              MOVS     r1,#0
00005e  eb0a1e02          ADD      lr,r10,r2,LSL #4
000062  eb001782          ADD      r7,r0,r2,LSL #6
000066  bf00              NOP      
                  |L6.104|
000068  f81e3001          LDRB     r3,[lr,r1]
00006c  425b              RSBS     r3,r3,#0
00006e  eb0c0343          ADD      r3,r12,r3,LSL #1
000072  ebd32303          RSBS     r3,r3,r3,LSL #8
000076  d504              BPL      |L6.130|
000078  425b              RSBS     r3,r3,#0
00007a  fb93f3f6          SDIV     r3,r3,r6
00007e  425b              RSBS     r3,r3,#0
000080  e001              B        |L6.134|
                  |L6.130|
000082  fb93f3f6          SDIV     r3,r3,r6
                  |L6.134|
000086  f8473021          STR      r3,[r7,r1,LSL #2]
00008a  1c49              ADDS     r1,r1,#1
00008c  2910              CMP      r1,#0x10
00008e  dbeb              BLT      |L6.104|
000090  1c52              ADDS     r2,r2,#1
000092  2a10              CMP      r2,#0x10
000094  dbe2              BLT      |L6.92|
                  |L6.150|

⌨️ 快捷键说明

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