From a30bc4f7e0b8a2d310217741dc41f76129c26019 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Wed, 27 Apr 2016 09:26:48 -0700 Subject: [PATCH] Enable 4:2:0 chroma subsampling for JPEG thumbnails * Add $wgJpegPixelFormat, default to 'yuv420' * Implemented for ImageMagick via CLI and extension * Currently ignored for other scaler backends * Added test case to run when using ImageMagick 4:2:0 subsampling can save an average of 17% bandwidth over 4:4:4 subsampling, at the cost of some artifacting at sharp red or blue edges. This is usually not noticeable in photographic images. To restore the previous behavior, set to false: $wgJpegPixelFormat = false; which will maintain the original file's pixel subsampling settings in the thumbnail. Can set explicitly to one of: 'yuv444' - never subsample 'yuv422' - subsample 2x horizontally, not vert 'yuv420' - subsample 2x in both dimensions Bug: T129128 Change-Id: Ib9cb36c3a7e6a69d66c11150ef4a1d02dbac2df5 --- RELEASE-NOTES-1.27 | 3 + includes/DefaultSettings.php | 21 ++++ includes/media/Bitmap.php | 33 ++++- tests/phpunit/data/media/yuv420.jpg | Bin 0 -> 59007 bytes tests/phpunit/data/media/yuv444.jpg | Bin 0 -> 70637 bytes .../includes/media/JpegPixelFormatTest.php | 115 ++++++++++++++++++ 6 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 tests/phpunit/data/media/yuv420.jpg create mode 100644 tests/phpunit/data/media/yuv444.jpg create mode 100644 tests/phpunit/includes/media/JpegPixelFormatTest.php diff --git a/RELEASE-NOTES-1.27 b/RELEASE-NOTES-1.27 index be15bde472..9b77cd1bf4 100644 --- a/RELEASE-NOTES-1.27 +++ b/RELEASE-NOTES-1.27 @@ -190,6 +190,9 @@ HHVM 3.1. Additionally, the following PHP extensions are required: is deprecated. * (T33313) Add a preference for watching uploads by default, also applies to API-based upload tools. +* $wgJpegPixelFormat was added to override chroma subsampling for JPEG image + thumbnails created via ImageMagick. Defaults to 'yuv420', providing bandwidth + savings versus the previous behavior on many files. === External library changes in 1.27 === diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index 13f7c4ef88..5b3684b336 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -980,6 +980,27 @@ $wgCustomConvertCommand = false; */ $wgJpegTran = '/usr/bin/jpegtran'; +/** + * At default setting of 'yuv420', JPEG thumbnails will use 4:2:0 chroma + * subsampling to reduce file size, at the cost of possible color fringing + * at sharp edges. + * + * See https://en.wikipedia.org/wiki/Chroma_subsampling + * + * Supported values: + * false - use scaling system's default (same as pre-1.27 behavior) + * 'yuv444' - luma and chroma at same resolution + * 'yuv422' - chroma at 1/2 resolution horizontally, full vertically + * 'yuv420' - chroma at 1/2 resolution in both dimensions + * + * This setting is currently supported only for the ImageMagick backend; + * others may default to 4:2:0 or 4:4:4 or maintaining the source file's + * sampling in the thumbnail. + * + * @since 1.27 + */ +$wgJpegPixelFormat = 'yuv420'; + /** * Some tests and extensions use exiv2 to manipulate the Exif metadata in some * image formats. diff --git a/includes/media/Bitmap.php b/includes/media/Bitmap.php index 4da41c8de4..ccd345c31f 100644 --- a/includes/media/Bitmap.php +++ b/includes/media/Bitmap.php @@ -104,6 +104,25 @@ class BitmapHandler extends TransformationalImageHandler { return true; } + /** + * Get ImageMagick subsampling factors for the target JPEG pixel format. + * + * @param string $pixelFormat one of 'yuv444', 'yuv422', 'yuv420' + * @return array of string keys + */ + protected function imageMagickSubsampling( $pixelFormat ) { + switch ( $pixelFormat ) { + case 'yuv444': + return [ '1x1', '1x1', '1x1' ]; + case 'yuv422': + return [ '2x1', '1x1', '1x1' ]; + case 'yuv420': + return [ '2x2', '1x1', '1x1' ]; + default: + throw new MWException( 'Invalid pixel format for JPEG output' ); + } + } + /** * Transform an image using ImageMagick * @@ -115,7 +134,7 @@ class BitmapHandler extends TransformationalImageHandler { protected function transformImageMagick( $image, $params ) { # use ImageMagick global $wgSharpenReductionThreshold, $wgSharpenParameter, $wgMaxAnimatedGifArea, - $wgImageMagickTempDir, $wgImageMagickConvertCommand; + $wgImageMagickTempDir, $wgImageMagickConvertCommand, $wgJpegPixelFormat; $quality = []; $sharpen = []; @@ -123,6 +142,7 @@ class BitmapHandler extends TransformationalImageHandler { $animation_pre = []; $animation_post = []; $decoderHint = []; + $subsampling = []; if ( $params['mimeType'] == 'image/jpeg' ) { $qualityVal = isset( $params['quality'] ) ? (string)$params['quality'] : null; @@ -141,6 +161,10 @@ class BitmapHandler extends TransformationalImageHandler { // JPEG decoder hint to reduce memory, available since IM 6.5.6-2 $decoderHint = [ '-define', "jpeg:size={$params['physicalDimensions']}" ]; } + if ( $wgJpegPixelFormat ) { + $factors = $this->imageMagickSubsampling( $wgJpegPixelFormat ); + $subsampling = [ '-sampling-factor', implode( ',', $factors ) ]; + } } elseif ( $params['mimeType'] == 'image/png' ) { $quality = [ '-quality', '95' ]; // zlib 9, adaptive filtering if ( $params['interlace'] ) { @@ -225,6 +249,7 @@ class BitmapHandler extends TransformationalImageHandler { [ '-depth', 8 ], $sharpen, [ '-rotate', "-$rotation" ], + $subsampling, $animation_post, [ $this->escapeMagickOutput( $params['dstPath'] ) ] ) ); @@ -251,7 +276,7 @@ class BitmapHandler extends TransformationalImageHandler { */ protected function transformImageMagickExt( $image, $params ) { global $wgSharpenReductionThreshold, $wgSharpenParameter, $wgMaxAnimatedGifArea, - $wgMaxInterlacingAreas; + $wgMaxInterlacingAreas, $wgJpegPixelFormat; try { $im = new Imagick(); @@ -272,6 +297,10 @@ class BitmapHandler extends TransformationalImageHandler { if ( $params['interlace'] ) { $im->setInterlaceScheme( Imagick::INTERLACE_JPEG ); } + if ( $wgJpegPixelFormat ) { + $factors = $this->imageMagickSubsampling( $wgJpegPixelFormat ); + $im->setSamplingFactors( $factors ); + } } elseif ( $params['mimeType'] == 'image/png' ) { $im->setCompressionQuality( 95 ); if ( $params['interlace'] ) { diff --git a/tests/phpunit/data/media/yuv420.jpg b/tests/phpunit/data/media/yuv420.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e741ca6549ff3601eeb874f2ad4a0cf15d9e12ec GIT binary patch literal 59007 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%0A75`$?D`jS!>pwoWS&!XDEHJs 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 RUUSTDY?3DD(Gt2d|JemzUW)(# literal 0 HcmV?d00001 diff --git a/tests/phpunit/data/media/yuv444.jpg b/tests/phpunit/data/media/yuv444.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6bccefa7becd8211fcb175671ee8afe894a3c9a4 GIT binary patch literal 70637 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ν?nA1 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 literal 0 HcmV?d00001 diff --git a/tests/phpunit/includes/media/JpegPixelFormatTest.php b/tests/phpunit/includes/media/JpegPixelFormatTest.php new file mode 100644 index 0000000000..6815a62bd9 --- /dev/null +++ b/tests/phpunit/includes/media/JpegPixelFormatTest.php @@ -0,0 +1,115 @@ +markTestSkipped( "This test is only applicable when using ImageMagick thumbnailing" ); + } + if ( !$wgUseImageResize ) { + $this->markTestSkipped( "This test is only applicable when using thumbnailing" ); + } + + $fmtStr = var_export( $pixelFormat, true ); + $this->setMwGlobals( 'wgJpegPixelFormat', $pixelFormat ); + + $file = $this->dataFile( $sourceFile, 'image/jpeg' ); + + $params = [ + 'width' => 320, + ]; + $thumb = $file->transform( $params, File::RENDER_NOW | File::RENDER_FORCE ); + $this->assertTrue( !$thumb->isError(), "created JPEG thumbnail for pixel format $fmtStr" ); + + $path = $thumb->getLocalCopyPath(); + $this->assertTrue( is_string( $path ), "path returned for JPEG thumbnail for $fmtStr" ); + + $cmd = [ + 'identify', + '-format', + '%[jpeg:sampling-factor]', + $path + ]; + $retval = null; + $output = wfShellExec( $cmd, $retval ); + $this->assertTrue( $retval === 0, "ImageMagick's identify command should return success" ); + + $expected = $samplingFactor; + $actual = trim( $output ); + $this->assertEquals( + $expected, + trim( $output ), + "IM identify expects JPEG chroma subsampling \"$expected\" for $fmtStr" + ); + } + + public static function providePixelFormats() { + return [ + // From 4:4:4 source file + [ + 'yuv444.jpg', + false, + '1x1,1x1,1x1' + ], + [ + 'yuv444.jpg', + 'yuv444', + '1x1,1x1,1x1' + ], + [ + 'yuv444.jpg', + 'yuv422', + '2x1,1x1,1x1' + ], + [ + 'yuv444.jpg', + 'yuv420', + '2x2,1x1,1x1' + ], + // From 4:2:0 source file + [ + 'yuv420.jpg', + false, + '2x2,1x1,1x1' + ], + [ + 'yuv420.jpg', + 'yuv444', + '1x1,1x1,1x1' + ], + [ + 'yuv420.jpg', + 'yuv422', + '2x1,1x1,1x1' + ], + [ + 'yuv420.jpg', + 'yuv420', + '2x2,1x1,1x1' + ] + ]; + } +} -- 2.20.1