From e316b0d667b82653e164d7acecde2d86a8ede550 Mon Sep 17 00:00:00 2001 From: Jake Archibald Date: Tue, 25 Aug 2020 13:39:01 +0100 Subject: [PATCH] Use identity coefficients for true lossless --- codecs/avif/enc/avif_enc.cpp | 10 ++++++++++ codecs/avif/enc/avif_enc.wasm | Bin 1658670 -> 1658759 bytes 2 files changed, 10 insertions(+) diff --git a/codecs/avif/enc/avif_enc.cpp b/codecs/avif/enc/avif_enc.cpp index 1f47e4a2..d8d13b8b 100644 --- a/codecs/avif/enc/avif_enc.cpp +++ b/codecs/avif/enc/avif_enc.cpp @@ -50,6 +50,16 @@ val encode(std::string buffer, int width, int height, AvifOptions options) { avifImage* image = avifImageCreate(width, height, depth, format); + if ( + options.maxQuantizer == AVIF_QUANTIZER_LOSSLESS && + options.minQuantizer == AVIF_QUANTIZER_LOSSLESS && + options.minQuantizerAlpha == AVIF_QUANTIZER_LOSSLESS && + options.maxQuantizerAlpha == AVIF_QUANTIZER_LOSSLESS && + format == AVIF_PIXEL_FORMAT_YUV444 + ) { + image->matrixCoefficients = AVIF_MATRIX_COEFFICIENTS_IDENTITY; + } + uint8_t* rgba = (uint8_t*)buffer.c_str(); avifRGBImage srcRGB; diff --git a/codecs/avif/enc/avif_enc.wasm b/codecs/avif/enc/avif_enc.wasm index 2a60d70df2438233674c90984a13537add4c1330..48c0c2ac45d08580a0e9b6fb84dc07b0fe6a5f98 100644 GIT binary patch delta 303 zcmXBMzfQw25C(Aj>^M%Hl+f^}AXJ?L18kWL14GS@$iORf=~x~h14ABx4c?$)>+2vU zo}e?IL8qTice?Mk@2l}+_4(AvpVz({`%VIZ0u33MUEk$5-@})Z*>EZ1a@}TEg0ly4 ztL~!qhL-=u`kF4{u%0R*Nx7)JDal1blP*ec!8j&X(Xy%clN3!M-4>~dR&Dg(!umW# zgjZ>A+q@ESE_|M*lJVzdQwcUv1bTLF+nIel=R8o&l8b-~$tsX#8D$_nE*c93Ou#`2 a6-?m(YB+=$G;jpRZ~~_=-z}Q6`u-P8)iV+R delta 213 zcmXBKEfRu20ES`q2V4;qU4KWz3I=Ty(O__G21hPI!2=KphK)v>-oUYO9}i*nV+ha8 z8(#BD-_P`OiOBtyL?(#{P+-8p2B%D-#`?Q4jL;&q^dSrErKRknwPia+71Kg<#aDD5 zuq%q`BGc?N^MCHbdH7PCLrr4J6{#jGrlKw$Q?D)&Q{UuLKoeYOfd_5qKo_c~2Yrw* PfFX=v43jdKQ-A*lUN