Changeset 6936


Ignore:
Timestamp:
02/21/12 13:47:19 (16 months ago)
Author:
cristy
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • ImageMagick/branches/ImageMagick-6.7.5/coders/jpeg.c

    r6933 r6936  
    646646  if (previous_profile != (const StringInfo *) NULL) 
    647647    { 
    648       ssize_t 
     648      size_t 
    649649        length; 
    650650 
     
    11101110        jpeg_info.do_block_smoothing=MagickTrue; 
    11111111    } 
     1112  jpeg_info.dct_method=JDCT_FLOAT; 
    11121113  option=GetImageOption(image_info,"jpeg:dct-method"); 
    11131114  if (option != (const char *) NULL) 
     
    17661767    jpeg_error; 
    17671768 
    1768   static const unsigned int 
    1769     CbQTable[DCTSIZE2] = 
    1770     { 
    1771       17,   18,   22,   31,   50,   92,    193,   465, 
    1772       18,   19,   24,   33,   54,   98,    207,   498, 
    1773       22,   24,   29,   41,   66,   120,   253,   609, 
    1774       31,   33,   41,   57,   92,   169,   355,   854, 
    1775       50,   54,   66,   92,   148,  271,   570,   1370, 
    1776       92,   98,   120,  169,  271,  498,   1046,  2516, 
    1777       193,  207,  253,  355,  570,  1046,  2198,  5289, 
    1778       465,  498,  609,  854,  1370, 2516,  5289,  12725 
    1779     }, 
    1780     CrQTable[DCTSIZE2] = 
    1781     { 
    1782       17, 18, 21, 28, 42, 69, 129, 269, 
    1783       18, 19, 23, 30, 44, 74, 137, 284, 
    1784       21, 23, 27, 35, 52, 87, 162, 336, 
    1785       28, 30, 35, 47, 69, 115, 214, 446, 
    1786       42, 44, 52, 69, 103, 171, 318, 661, 
    1787       69, 74, 87, 115, 171, 284, 528, 1098, 
    1788       129, 137, 162, 214, 318, 528, 981, 2040, 
    1789       269, 284, 336, 446, 661, 1098, 2040, 4242 
    1790     }, 
    1791     LuminanceQTable[DCTSIZE2] = 
    1792     { 
    1793       16, 11, 13, 16, 20, 29, 44, 73, 
    1794       11, 12, 13, 16, 21, 30, 46, 76, 
    1795       13, 13, 15, 18, 24, 34, 52, 85, 
    1796       16, 16, 18, 22, 29, 41, 63, 103, 
    1797       20, 21, 24, 29, 38, 54, 82, 135, 
    1798       29, 30, 34, 41, 54, 76, 116, 192, 
    1799       44, 46, 52, 63, 82, 116, 177, 293, 
    1800       73, 76, 85, 103, 135, 192, 293, 484 
    1801     }; 
    1802  
    18031769  /* 
    18041770    Open image file. 
     
    19021868        jpeg_info.density_unit=(UINT8) 2; 
    19031869    } 
     1870  jpeg_info.dct_method=JDCT_FLOAT; 
    19041871  option=GetImageOption(image_info,"jpeg:dct-method"); 
    19051872  if (option != (const char *) NULL) 
     
    21262093      (jpeg_info.comp_info[0].v_samp_factor >= 2)) 
    21272094    { 
     2095      static const unsigned int 
     2096        CbQTable[DCTSIZE2] = 
     2097        { 
     2098          17,   18,   22,   31,   50,   92,    193,   465, 
     2099          18,   19,   24,   33,   54,   98,    207,   498, 
     2100          22,   24,   29,   41,   66,   120,   253,   609, 
     2101          31,   33,   41,   57,   92,   169,   355,   854, 
     2102          50,   54,   66,   92,   148,  271,   570,   1370, 
     2103          92,   98,   120,  169,  271,  498,   1046,  2516, 
     2104          193,  207,  253,  355,  570,  1046,  2198,  5289, 
     2105          465,  498,  609,  854,  1370, 2516,  5289,  12725 
     2106        }, 
     2107        CrQTable[DCTSIZE2] = 
     2108        { 
     2109          17, 18, 21, 28, 42, 69, 129, 269, 
     2110          18, 19, 23, 30, 44, 74, 137, 284, 
     2111          21, 23, 27, 35, 52, 87, 162, 336, 
     2112          28, 30, 35, 47, 69, 115, 214, 446, 
     2113          42, 44, 52, 69, 103, 171, 318, 661, 
     2114          69, 74, 87, 115, 171, 284, 528, 1098, 
     2115          129, 137, 162, 214, 318, 528, 981, 2040, 
     2116          269, 284, 336, 446, 661, 1098, 2040, 4242 
     2117        }, 
     2118        LuminanceQTable[DCTSIZE2] = 
     2119        { 
     2120          16, 11, 13, 16, 20, 29, 44, 73, 
     2121          11, 12, 13, 16, 21, 30, 46, 76, 
     2122          13, 13, 15, 18, 24, 34, 52, 85, 
     2123          16, 16, 18, 22, 29, 41, 63, 103, 
     2124          20, 21, 24, 29, 38, 54, 82, 135, 
     2125          29, 30, 34, 41, 54, 76, 116, 192, 
     2126          44, 46, 52, 63, 82, 116, 177, 293, 
     2127          73, 76, 85, 103, 135, 192, 293, 484 
     2128        }; 
     2129 
    21282130      /* 
    21292131        Nicolas Robidoux's remix of ISO-IEC 10918-1 : 1993(E) Annex K. 
     
    21362138        quality),0); 
    21372139    } 
     2140  else 
     2141    if ((jpeg_info.comp_info[0].h_samp_factor >= 1) && 
     2142        (jpeg_info.comp_info[0].v_samp_factor >= 1)) 
     2143      { 
     2144        static const unsigned int 
     2145          CbQTable[DCTSIZE2] = 
     2146          { 
     2147            17,  18,  27,   51,   124,  395,  1617, 8563, 
     2148            18,  21,  30,   58,   141,  449,  1838, 9734, 
     2149            27,  30,  45,   85,   208,  659,  2701, 12725, 
     2150            51,  58,  85,   161,  395,  1251, 5127, 12725, 
     2151            124, 141, 208,  395,  968,  3070, 12580,12725, 
     2152            395, 449, 659,  1251, 3070, 9734, 12725,12725, 
     2153            1617,1838,2701, 5127, 12580,12725,12725,12725, 
     2154            8563,9734,12725,12725,12725,12725,12725,12725 
     2155          }, 
     2156          CrQTable[DCTSIZE2] = 
     2157          { 
     2158            17,  18,  25,  43,  92,   245,  813,  3358, 
     2159            18,  20,  28,  48,  102,  273,  907,  3745, 
     2160            25,  28,  38,  66,  142,  379,  1258, 5195, 
     2161            43,  48,  66,  114, 245,  654,  2170, 8965, 
     2162            92,  102, 142, 245, 525,  1403, 4658, 12725, 
     2163            245, 273, 379, 654, 1403, 3745, 12436,12725, 
     2164            813, 907, 1258,2170,4658, 12436,12725,12725, 
     2165            3358,3745,5195,8965,12725,12725,12725,12725 
     2166          }, 
     2167          LuminanceQTable[DCTSIZE2] = 
     2168          { 
     2169            17, 12, 14, 17, 22, 30, 45, 72, 
     2170            12, 13, 14, 17, 22, 31, 46, 74,  
     2171            14, 14, 16, 19, 25, 35, 52, 83,  
     2172            17, 17, 19, 23, 30, 41, 62, 100,   
     2173            22, 22, 25, 30, 39, 54, 80, 129, 
     2174            30, 31, 35, 41, 54, 74, 111, 178, 
     2175            45, 46, 52, 62, 80, 111, 166, 267, 
     2176            72, 74, 83, 100, 129, 178, 267, 428 
     2177          }; 
     2178 
     2179        /* 
     2180          Nicolas Robidoux's remix of ISO-IEC 10918-1 : 1993(E) Annex K. 
     2181        */ 
     2182        jpeg_add_quant_table(&jpeg_info,0,LuminanceQTable,jpeg_quality_scaling( 
     2183          quality),0); 
     2184        jpeg_add_quant_table(&jpeg_info,1,CbQTable,jpeg_quality_scaling( 
     2185          quality),0); 
     2186        jpeg_add_quant_table(&jpeg_info,2,CrQTable,jpeg_quality_scaling( 
     2187          quality),0); 
     2188      } 
    21382189  jpeg_start_compress(&jpeg_info,MagickTrue); 
    21392190  if (image->debug != MagickFalse) 
Note: See TracChangeset for help on using the changeset viewer.