From patchwork Mon Apr 3 20:13:30 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rostislav Pehlivanov X-Patchwork-Id: 3276 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.44.195 with SMTP id s186csp240869vss; Mon, 3 Apr 2017 13:22:09 -0700 (PDT) X-Received: by 10.28.180.137 with SMTP id d131mr5831661wmf.108.1491250929423; Mon, 03 Apr 2017 13:22:09 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p89si5366022wmf.29.2017.04.03.13.22.09; Mon, 03 Apr 2017 13:22:09 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5304A687EBA; Mon, 3 Apr 2017 23:22:05 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr0-f196.google.com (mail-wr0-f196.google.com [209.85.128.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6CE9F6806A5 for ; Mon, 3 Apr 2017 23:21:59 +0300 (EEST) Received: by mail-wr0-f196.google.com with SMTP id w43so36616905wrb.1 for ; Mon, 03 Apr 2017 13:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=rFxEn/93Evht4BQ13brOgJ6N5oiRDvdd3VkNJG69acI=; b=RzAcoBcuu8ZsobhsNhMhWCTwrSVII59QmOmyx7Y09Q/TzqRyNgD9IJJQVGaJfb8ruP zaa7u1ykl27eUj2etjsPxz2lgNCt85pgLx0aVq3enGW3wKC15kL2KLg2wz9daTPDZrpf Y+83Q2t1/Z6gJG2+fUBoKvkA3fXJPNJ8vNe+5VzO6rs3oq1J6Frm3eiIR2RYeso48Gme un7kp2J94X7jp4YxBXhsd6aot4/fxFGajPsilOoMGLKrFhYUeiIGAAuF0q4XOUoZRKG8 cq/KnNbWmfYzubXktUuXE5nyADAEKiCJEU99ZwIlgxMmO7BQYwdWPag0bB5jfLIzO4Vr 5IVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=rFxEn/93Evht4BQ13brOgJ6N5oiRDvdd3VkNJG69acI=; b=e7lMmjEzJgbkOnCiZOb1w+pkI9ke8T3FxecbSNRfhav82NB0RVVudzKO2iC0ie4Dww L3laCTLrJSc83yTPP31YSdjKq1H0WpobgxuJG4I3h7Pcnsb9WOHRTc3hnpW6WYzWWIDB c01MuGWrJ83el9cSsAUI885m271mjm5zQIHw8PyTLf5hrQ74suX8tFQtw5eUgoT8KodI yy9Ih+poE3iUKL1Dzc/o1bmfrD6A4CiP27kYHbACcy2erpOCDPssoWzvnt4iI7zzuo4o HwPQtwVJtCP37qJSsWn2JeUHMz2HHyzoONPIjoeoqXWRg5DtOYgOkNAtxo3pqD5lDmoR GMWA== X-Gm-Message-State: AFeK/H1dLLqyyCVUt4DGZz31HsUS9HVTSWP7vEi+bvtTHYkQzDRA0qw+QRn9Xyp7PO3vYQ== X-Received: by 10.28.63.71 with SMTP id m68mr11474499wma.46.1491250420073; Mon, 03 Apr 2017 13:13:40 -0700 (PDT) Received: from moonbase.lan (host86-136-239-66.range86-136.btcentralplus.com. [86.136.239.66]) by smtp.gmail.com with ESMTPSA id 201sm15651802wmr.5.2017.04.03.13.13.39 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 03 Apr 2017 13:13:39 -0700 (PDT) From: Rostislav Pehlivanov To: ffmpeg-devel@ffmpeg.org Date: Mon, 3 Apr 2017 21:13:30 +0100 Message-Id: <20170403201330.44240-3-atomnuker@gmail.com> X-Mailer: git-send-email 2.12.2.564.g063fe858b8 In-Reply-To: <20170403201330.44240-1-atomnuker@gmail.com> References: <20170403201330.44240-1-atomnuker@gmail.com> Subject: [FFmpeg-devel] [PATCH 3/3] mjpegenc: enable optimal huffman coding by default X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Rostislav Pehlivanov MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" As it gives excellent encoding gains at an insignificant speed increase and passes fate without problems, it should now be safe to enable by default. Signed-off-by: Rostislav Pehlivanov --- libavcodec/mjpegenc.c | 2 +- tests/ref/vsynth/vsynth1-mjpeg | 4 ++-- tests/ref/vsynth/vsynth1-mjpeg-422 | 4 ++-- tests/ref/vsynth/vsynth1-mjpeg-444 | 4 ++-- tests/ref/vsynth/vsynth1-mjpeg-trell | 8 ++++---- tests/ref/vsynth/vsynth2-mjpeg | 4 ++-- tests/ref/vsynth/vsynth2-mjpeg-422 | 4 ++-- tests/ref/vsynth/vsynth2-mjpeg-trell | 6 +++--- tests/ref/vsynth/vsynth3-mjpeg | 4 ++-- tests/ref/vsynth/vsynth3-mjpeg-422 | 4 ++-- tests/ref/vsynth/vsynth3-mjpeg-444 | 4 ++-- tests/ref/vsynth/vsynth3-mjpeg-trell | 8 ++++---- tests/ref/vsynth/vsynth_lena-mjpeg | 4 ++-- tests/ref/vsynth/vsynth_lena-mjpeg-422 | 4 ++-- tests/ref/vsynth/vsynth_lena-mjpeg-444 | 4 ++-- tests/ref/vsynth/vsynth_lena-mjpeg-trell | 8 ++++---- 16 files changed, 38 insertions(+), 38 deletions(-) diff --git a/libavcodec/mjpegenc.c b/libavcodec/mjpegenc.c index cc917edb7f..03c3d0ab13 100644 --- a/libavcodec/mjpegenc.c +++ b/libavcodec/mjpegenc.c @@ -444,7 +444,7 @@ FF_MPV_COMMON_OPTS { "left", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 1 }, INT_MIN, INT_MAX, VE, "pred" }, { "plane", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 2 }, INT_MIN, INT_MAX, VE, "pred" }, { "median", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = 3 }, INT_MIN, INT_MAX, VE, "pred" }, -{ "huffman", "Huffman table strategy", OFFSET(huffman), AV_OPT_TYPE_INT, { .i64 = HUFFMAN_TABLE_DEFAULT }, 0, NB_HUFFMAN_TABLE_OPTION - 1, VE, "huffman" }, +{ "huffman", "Huffman table strategy", OFFSET(huffman), AV_OPT_TYPE_INT, { .i64 = HUFFMAN_TABLE_OPTIMAL }, 0, NB_HUFFMAN_TABLE_OPTION - 1, VE, "huffman" }, { "default", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = HUFFMAN_TABLE_DEFAULT }, INT_MIN, INT_MAX, VE, "huffman" }, { "optimal", NULL, 0, AV_OPT_TYPE_CONST, { .i64 = HUFFMAN_TABLE_OPTIMAL }, INT_MIN, INT_MAX, VE, "huffman" }, { NULL}, diff --git a/tests/ref/vsynth/vsynth1-mjpeg b/tests/ref/vsynth/vsynth1-mjpeg index 11de0207f6..aa441d312a 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg +++ b/tests/ref/vsynth/vsynth1-mjpeg @@ -1,4 +1,4 @@ -9ff18b19d12bb9bb2ed434a79f212888 *tests/data/fate/vsynth1-mjpeg.avi -1515906 tests/data/fate/vsynth1-mjpeg.avi +63ea9bd494e16bad8f3a0c8dbb3dc11e *tests/data/fate/vsynth1-mjpeg.avi +1391380 tests/data/fate/vsynth1-mjpeg.avi 9a3b8169c251d19044f7087a95458c55 *tests/data/fate/vsynth1-mjpeg.out.rawvideo stddev: 7.87 PSNR: 30.21 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-422 b/tests/ref/vsynth/vsynth1-mjpeg-422 index bd760a1c8d..dda3928a4b 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-422 +++ b/tests/ref/vsynth/vsynth1-mjpeg-422 @@ -1,4 +1,4 @@ -3b19da06ffe23cb804bca7a9a86eb3d5 *tests/data/fate/vsynth1-mjpeg-422.avi -1756304 tests/data/fate/vsynth1-mjpeg-422.avi +82d8874bfe13f56ec466b206a08a4402 *tests/data/fate/vsynth1-mjpeg-422.avi +1611832 tests/data/fate/vsynth1-mjpeg-422.avi c35eea486c6d72050f4848eab64032b5 *tests/data/fate/vsynth1-mjpeg-422.out.rawvideo stddev: 7.45 PSNR: 30.69 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-444 b/tests/ref/vsynth/vsynth1-mjpeg-444 index 42a9be3278..66a0efcf95 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-444 +++ b/tests/ref/vsynth/vsynth1-mjpeg-444 @@ -1,4 +1,4 @@ -9591b754ca151f3802738840fa5c26c0 *tests/data/fate/vsynth1-mjpeg-444.avi -1989784 tests/data/fate/vsynth1-mjpeg-444.avi +2dd741cbee9b3499826beca7c7d3b8dc *tests/data/fate/vsynth1-mjpeg-444.avi +1831614 tests/data/fate/vsynth1-mjpeg-444.avi 313a4a76af13d5879ea4910107b7ea74 *tests/data/fate/vsynth1-mjpeg-444.out.rawvideo stddev: 7.37 PSNR: 30.77 MAXDIFF: 63 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth1-mjpeg-trell b/tests/ref/vsynth/vsynth1-mjpeg-trell index b97efcbf74..cf2a7ff16e 100644 --- a/tests/ref/vsynth/vsynth1-mjpeg-trell +++ b/tests/ref/vsynth/vsynth1-mjpeg-trell @@ -1,4 +1,4 @@ -03d14b3db6232f46c0d931477801a7a6 *tests/data/fate/vsynth1-mjpeg-trell.avi -1454308 tests/data/fate/vsynth1-mjpeg-trell.avi -218d4dc8086fdef15d5382e6ba97df0b *tests/data/fate/vsynth1-mjpeg-trell.out.rawvideo -stddev: 7.71 PSNR: 30.39 MAXDIFF: 62 bytes: 7603200/ 7603200 +d9410fa80c07edbd2a2b44ceb06086ca *tests/data/fate/vsynth1-mjpeg-trell.avi +1360456 tests/data/fate/vsynth1-mjpeg-trell.avi +0266b223bdd7928426a951164bb4a366 *tests/data/fate/vsynth1-mjpeg-trell.out.rawvideo +stddev: 7.68 PSNR: 30.42 MAXDIFF: 62 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg b/tests/ref/vsynth/vsynth2-mjpeg index 98b257ef01..cf80937dc6 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg +++ b/tests/ref/vsynth/vsynth2-mjpeg @@ -1,4 +1,4 @@ -c76100bdc3f4c8e2580bb263accda9ec *tests/data/fate/vsynth2-mjpeg.avi -830154 tests/data/fate/vsynth2-mjpeg.avi +9bf00cd3188b7395b798bb10df376243 *tests/data/fate/vsynth2-mjpeg.avi +792742 tests/data/fate/vsynth2-mjpeg.avi 2b8c59c59e33d6ca7c85d31c5eeab7be *tests/data/fate/vsynth2-mjpeg.out.rawvideo stddev: 4.87 PSNR: 34.37 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-422 b/tests/ref/vsynth/vsynth2-mjpeg-422 index ddedda68fe..b162bb32c7 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-422 +++ b/tests/ref/vsynth/vsynth2-mjpeg-422 @@ -1,4 +1,4 @@ -1c8dd65c901ce48ef82d73b80e38c735 *tests/data/fate/vsynth2-mjpeg-422.avi -920364 tests/data/fate/vsynth2-mjpeg-422.avi +e37720892c9ee9d02842cc50bf20181e *tests/data/fate/vsynth2-mjpeg-422.avi +877786 tests/data/fate/vsynth2-mjpeg-422.avi 4a1b18eeb8b0f3dccc2c0e6a9f8c876d *tests/data/fate/vsynth2-mjpeg-422.out.rawvideo stddev: 4.69 PSNR: 34.69 MAXDIFF: 55 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-mjpeg-trell b/tests/ref/vsynth/vsynth2-mjpeg-trell index ce6d917c18..e1acb33d88 100644 --- a/tests/ref/vsynth/vsynth2-mjpeg-trell +++ b/tests/ref/vsynth/vsynth2-mjpeg-trell @@ -1,4 +1,4 @@ -4fdbd2327ed16fc4448eb421def22b5e *tests/data/fate/vsynth2-mjpeg-trell.avi -765628 tests/data/fate/vsynth2-mjpeg-trell.avi -ce145393bece26d49076b26cf1a2e52e *tests/data/fate/vsynth2-mjpeg-trell.out.rawvideo +a59d99d31d24875161504820d4266e4d *tests/data/fate/vsynth2-mjpeg-trell.avi +734728 tests/data/fate/vsynth2-mjpeg-trell.avi +42376126213c73c86b408882e24ba015 *tests/data/fate/vsynth2-mjpeg-trell.out.rawvideo stddev: 5.03 PSNR: 34.09 MAXDIFF: 67 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth3-mjpeg b/tests/ref/vsynth/vsynth3-mjpeg index c69338fbc0..4b3371ec22 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg +++ b/tests/ref/vsynth/vsynth3-mjpeg @@ -1,4 +1,4 @@ -7d7a2fa8559a3652db52b7a70267d1a3 *tests/data/fate/vsynth3-mjpeg.avi -64808 tests/data/fate/vsynth3-mjpeg.avi +eec435352485fec167179a63405505be *tests/data/fate/vsynth3-mjpeg.avi +48156 tests/data/fate/vsynth3-mjpeg.avi c4fe7a2669afbd96c640748693fc4e30 *tests/data/fate/vsynth3-mjpeg.out.rawvideo stddev: 8.60 PSNR: 29.43 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-422 b/tests/ref/vsynth/vsynth3-mjpeg-422 index b50e4792ed..c364c79a11 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-422 +++ b/tests/ref/vsynth/vsynth3-mjpeg-422 @@ -1,4 +1,4 @@ -34c57632d23c4322d2e508368e7c8e36 *tests/data/fate/vsynth3-mjpeg-422.avi -69462 tests/data/fate/vsynth3-mjpeg-422.avi +396394fab0d456443a3929a33f8c0d59 *tests/data/fate/vsynth3-mjpeg-422.avi +52606 tests/data/fate/vsynth3-mjpeg-422.avi a332893cb0603f2f505fe5d3bf105519 *tests/data/fate/vsynth3-mjpeg-422.out.rawvideo stddev: 8.23 PSNR: 29.82 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-444 b/tests/ref/vsynth/vsynth3-mjpeg-444 index d701f667cc..0e38744fd2 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-444 +++ b/tests/ref/vsynth/vsynth3-mjpeg-444 @@ -1,4 +1,4 @@ -0900258953e90ab97a95ccaccb7b0d8a *tests/data/fate/vsynth3-mjpeg-444.avi -70588 tests/data/fate/vsynth3-mjpeg-444.avi +3f2dca7be789eb7818c69ec716c0d831 *tests/data/fate/vsynth3-mjpeg-444.avi +53958 tests/data/fate/vsynth3-mjpeg-444.avi 79a901f2ed85d82cf1c674fab3d3ef72 *tests/data/fate/vsynth3-mjpeg-444.out.rawvideo stddev: 8.21 PSNR: 29.84 MAXDIFF: 58 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth3-mjpeg-trell b/tests/ref/vsynth/vsynth3-mjpeg-trell index 9178d02475..5b386c7eed 100644 --- a/tests/ref/vsynth/vsynth3-mjpeg-trell +++ b/tests/ref/vsynth/vsynth3-mjpeg-trell @@ -1,4 +1,4 @@ -6f815acb8fce5458561aa902703e6189 *tests/data/fate/vsynth3-mjpeg-trell.avi -63994 tests/data/fate/vsynth3-mjpeg-trell.avi -4fed1e12c80df7b67df292b153c3cf16 *tests/data/fate/vsynth3-mjpeg-trell.out.rawvideo -stddev: 8.27 PSNR: 29.77 MAXDIFF: 61 bytes: 86700/ 86700 +484fa337b71c06a0206243814c4894b0 *tests/data/fate/vsynth3-mjpeg-trell.avi +47816 tests/data/fate/vsynth3-mjpeg-trell.avi +f0ccfe4584d193fd6d690a85a70db188 *tests/data/fate/vsynth3-mjpeg-trell.out.rawvideo +stddev: 8.27 PSNR: 29.78 MAXDIFF: 55 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg b/tests/ref/vsynth/vsynth_lena-mjpeg index 1487641831..e30ddc7677 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg +++ b/tests/ref/vsynth/vsynth_lena-mjpeg @@ -1,4 +1,4 @@ -40c5ba1b15006799773617f888c2808b *tests/data/fate/vsynth_lena-mjpeg.avi -673178 tests/data/fate/vsynth_lena-mjpeg.avi +007c989af621445dc7c9bd248b9df3b4 *tests/data/fate/vsynth_lena-mjpeg.avi +635498 tests/data/fate/vsynth_lena-mjpeg.avi 9d4bd90e9abfa18192383b4adc23c8d4 *tests/data/fate/vsynth_lena-mjpeg.out.rawvideo stddev: 4.32 PSNR: 35.40 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-422 b/tests/ref/vsynth/vsynth_lena-mjpeg-422 index 23dd1a257d..f94ae5815d 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-422 +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-422 @@ -1,4 +1,4 @@ -4a1f72cf4c8e562f4e805f0c7912515b *tests/data/fate/vsynth_lena-mjpeg-422.avi -746534 tests/data/fate/vsynth_lena-mjpeg-422.avi +e867bc5e8e4e4555846c61b3cb4580a6 *tests/data/fate/vsynth_lena-mjpeg-422.avi +707376 tests/data/fate/vsynth_lena-mjpeg-422.avi 451ac80989c4e14445cf951fd7f83b6d *tests/data/fate/vsynth_lena-mjpeg-422.out.rawvideo stddev: 4.18 PSNR: 35.70 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-444 b/tests/ref/vsynth/vsynth_lena-mjpeg-444 index 1dc103c199..cb4c0a12db 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-444 +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-444 @@ -1,4 +1,4 @@ -969ac14cbc77d5475f4871cefe3cc6b0 *tests/data/fate/vsynth_lena-mjpeg-444.avi -851446 tests/data/fate/vsynth_lena-mjpeg-444.avi +9a36b201c4f68051441b1ee1307a2cc2 *tests/data/fate/vsynth_lena-mjpeg-444.avi +807628 tests/data/fate/vsynth_lena-mjpeg-444.avi 34edcb9c87ff7aac456a4fb07f43504b *tests/data/fate/vsynth_lena-mjpeg-444.out.rawvideo stddev: 4.05 PSNR: 35.96 MAXDIFF: 49 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth_lena-mjpeg-trell b/tests/ref/vsynth/vsynth_lena-mjpeg-trell index d37d5a2714..86332b2010 100644 --- a/tests/ref/vsynth/vsynth_lena-mjpeg-trell +++ b/tests/ref/vsynth/vsynth_lena-mjpeg-trell @@ -1,4 +1,4 @@ -61c12b5e0f95c352c1ff2f3b95d88274 *tests/data/fate/vsynth_lena-mjpeg-trell.avi -613612 tests/data/fate/vsynth_lena-mjpeg-trell.avi -ee4999fcc0913e01e69fe689b4229cbe *tests/data/fate/vsynth_lena-mjpeg-trell.out.rawvideo -stddev: 4.51 PSNR: 35.03 MAXDIFF: 60 bytes: 7603200/ 7603200 +6eb36ab28a082f496f1f3bc165704a68 *tests/data/fate/vsynth_lena-mjpeg-trell.avi +582534 tests/data/fate/vsynth_lena-mjpeg-trell.avi +dcb183a6a5fa06e7234d46dd97ceb8ec *tests/data/fate/vsynth_lena-mjpeg-trell.out.rawvideo +stddev: 4.51 PSNR: 35.05 MAXDIFF: 60 bytes: 7603200/ 7603200