ImageMagick-6.9.4-9差分
ImageMagick-6.9.4-8差分 - yoya's diaryの続き
The latest release of ImageMagick is version 6.9.4-9
- 7 系同時リリースは ImageMagick-7.0.2-0
まとめ
- 有限精度 ε (epsilon) を 1.0e-15 から 1.0e-12 に変更
- 参考) MagickEpsilon の歴史
差分
ChangeLog の分
2016-06-09 6.9.4-9 Cristy
- 有限精度 ε (epsilon) を甘くした
- https://github.com/ImageMagick/ImageMagick/issues/215
- (stroke-linecap round が効かない事のある問題)
- https://github.com/ImageMagick/ImageMagick/issues/215
- magick/magick-type.h
139c139 < #define MagickEpsilon (1.0e-15) --- > #define MagickEpsilon (1.0e-12)
ChangeLogにない差分
- magick/cache.c
- info->buffer が NULL の時にリリース処理を行わない。
193a194,195 > if (info->buffer != (cl_mem) NULL) > { 195a198 > }
- magick/effect.c
- LocalContrastImage で異常系の処理
> status=MagickTrue; 2586a2591,2592 > if (status == MagickFalse) > continue; 2591a2598,2602 > if (p == (const PixelPacket *) NULL) > { > status=MagickFalse; > continue; > } 2660a2672,2673 > if (status == MagickFalse) > continue; 2666a2680,2684 > if ((p == (const PixelPacket *) NULL) || (q == (PixelPacket *) NULL)) > { > status=MagickFalse; > continue; > } 2699a2718,2719 > if (SyncCacheViewAuthenticPixels(contrast_view,exception) == MagickFalse) > status=MagickFalse; 2705a2726,2727 > if (status == MagickFalse) > contrast_image=DestroyImage(contrast_image);
- magick/magick-baseconfig.h
- 幾つかの 1 define を削除。
381,383c381 < #ifndef MAGICKCORE_HAVE_LCMS2_H < #define MAGICKCORE_HAVE_LCMS2_H 1 < #endif --- > /* #undef HAVE_LCMS2_H */ 1131,1133c1129 < #ifndef MAGICKCORE_JPEG_DELEGATE < #define MAGICKCORE_JPEG_DELEGATE 1 < #endif --- > /* #undef JPEG_DELEGATE */ 1136,1138c1132 < #ifndef MAGICKCORE_LCMS_DELEGATE < #define MAGICKCORE_LCMS_DELEGATE 1 < #endif --- > /* #undef LCMS_DELEGATE */
ChangeLog
2016-06-09 6.9.4-9 Cristy <quetzlzacatenango@image...> * Backoff finite precision epsilon (reference https://github.com/ImageMagick/ImageMagick/issues/215).
MagickEpsilon の歴史
ImageMagick-6.9.4-9 で MagickEpsilon が変わったのが気になって、今までのバージョンを調べてみました。
バージョンによる推移
- 4 系は grep Epsilon で引っかからず。NoiseEpsilon は別ものなので除外。
- 5系は 5.2.6 〜 5.5.7 が手元にあったけど一部抜けあり。
表
バージョン | Q8 | Q16以上 | ヘッダ |
---|---|---|---|
4系 | (grepで見つからず) | ||
5.2.6 〜 5.5.7 | (1.0e-12) | 同左 | magick/studio.h |
6.0.0 〜 6.2.2 | (1.0e-6) | (1.0e-10) | magick/ImageMagick.h |
6.2.3 〜 6.6.0-0 | (1.0e-6) | (1.0e-10) | magick/magick-type.h |
6.6.0-1 〜 6.6.0-9 | (2.0*1.1920928955078125e-07) | (2.0*2.2204460492503131e-16) | 同上 |
6.6.0-10 〜 6.7.7-5 | (1.0e-6) | (1.0e-10) | 同上 |
6.7.7-6 〜 6.7.7-9 | (1.0e-7) | (1.0e-16) | 同上 |
6.7.7-10 | (1.192093e-07) | (2.220446e-16) | 同上 |
6.7.8-0 〜 6.7.8-7 | (2.220446e-16) | 同左 | 同上 |
6.7.8-8 〜 6.8.0-2 | (1.0e-16) | 同左 | 同上 |
6.8.0-3 〜 6.9.4-8 | (1.0e-15) | 同左 | 同上 |
6.9.4-9 〜 | (1.0e-16) | 同左 | 同上 |
リスト
- 4 系
- (grep Epsilon で引っかからず。NoiseEpsilon は汎用的じゃないので除外)
- 5系 (5.2.6 〜 5.5.7 のうち手元にある分) (magick/studio.h)
- (1.0e-12)
- 6.0.0 〜 6.2.2 (magick/ImageMagick.h)
- Q8 だけ (1.0e-6)、Q16,32,64 は (1.0e-10)
- 6.2.3 〜 6.6.0-0 (magick/magick-type.h)
- Q8 だけ (1.0e-6)、Q16,32,64 は (1.0e-10)
- 6.6.0-1 〜 6.6.0-9
- Q8 だけ (2.0*1.1920928955078125e-07) 、Q16,32,64 は (2.0*2.2204460492503131e-16)
- 6.6.0-10 〜 6.7.7-5
- Q8 だけ (1.0e-6)、Q16,32,64 は (1.0e-10)
- 6.7.7-6 〜 6.7.7-9
- Q8 だけ (1.0e-7)、Q16,32,64 は (1.0e-16)
- 6.7.7-10
- Q8 だけ (1.192093e-07) 、Q16,32,64 は (2.220446e-16)
- 6.7.8-0 〜 6.7.8-7
- (2.220446e-16)
- 6.7.8-8 〜 6.8.0-2
- (1.0e-16)
- 6.8.0-3 〜 6.9.4-8
- (1.0e-15)
- 6.9.4-9 〜
- (1.0e-16)
備考
- 具体的な問題が生じると、それを解決するよう再調整してるので、結構場当たりです。