From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 540554B93F for ; Thu, 27 Jun 2024 14:23:09 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4536368D5B5; Thu, 27 Jun 2024 17:23:07 +0300 (EEST) Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AFA0468BDE1 for ; Thu, 27 Jun 2024 17:23:00 +0300 (EEST) Received: by mail-pj1-f45.google.com with SMTP id 98e67ed59e1d1-2c7fa0c9a8cso5675151a91.1 for ; Thu, 27 Jun 2024 07:23:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719498178; x=1720102978; darn=ffmpeg.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=Ej4fIYGa6/HGWB+MQQHyLF6tzz7Xf9aJZA9pUltlIqM=; b=aZNvFNGN4GyEJYvu9vInhkZFAqu2dF199LWELDeqCjAyuGeTd3YV02QhT0QO8NLqTp rzgwRp9EFPZunEpX86wjptSfLAu/QXB/LAZ0tVos1hz/+S0N+iM95CPW6RZgCkF42oLE UNSE3gQzemBjmekoK0iDF494tjvESMG9bAhQkBL/NMsLuY6I+AYl2z/j73BeT4NVPInj 3wNzNQkUiQPhvJoebEFBRARNfDQj2q0CtkuF/cjSHS02c956ie8SA7IXWaPH8rs0pevJ MS8AztmtS1sksZCrA2GmuWK6NK+bk3FbWkrndF88IlWMYHypn3d5i7hGiS+n9EbXmO1n +oMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719498178; x=1720102978; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=Ej4fIYGa6/HGWB+MQQHyLF6tzz7Xf9aJZA9pUltlIqM=; b=DnjE+p6SKeI2xHY3TPHqrb4zmX4YM+ev/Md6JsvmdYOHO9cyt2IGjS/lkHH2J+52VO 51fwqigdPNSsH9EP+OObHTUn6CImM98Cr+lKVG0QRGwr6xEtAVWVmaUec3i0wB/gcJbW wC25JbPPDd1qrxXFeq33AQZbPs3G1vGXdtiSVU9DbWiUVJwL01Wft/FVTn/WG3r/uWg4 n7/F+ugo268KmGSUhD/0sGZIURikSLmvRDrKWeAdFL5G2gd+YYcVcualmy+V18z7vKYo gdX0A/TFmNh0g8yx4VQA9Shd2iokCYDmC7+2XeFt583DFfFf2zatsREq/l5xuUZJ9NpU qLfg== X-Gm-Message-State: AOJu0YxltbvuWtaww3pUoLNtH3XnsunzA0NmWVE4E1TMhK0D114lC2gC EK8slJX0a7/vrQTx+OfvnAx4mXAdijvfd+L2LDGTGi9Oiw6EgnFJoskpqN+ZR7rG890d4d3yacM yu0STx82I2NnWpuZqzYl5Pk0MfOtYNw== X-Google-Smtp-Source: AGHT+IGNZ39dgsLtqRJCJhiJoEhVv+gvXwCl6ZWV32cZi1T+z+1wd7lcFhWqY1rBp1NcXT2/EqUSO9cJAKc2M8XqBJQ= X-Received: by 2002:a17:90b:1089:b0:2c8:8df1:118f with SMTP id 98e67ed59e1d1-2c88df111e0mr9429161a91.33.1719498178451; Thu, 27 Jun 2024 07:22:58 -0700 (PDT) MIME-Version: 1.0 References: <20240607192654.146995-1-ramiro.polla@gmail.com> In-Reply-To: From: Ramiro Polla Date: Thu, 27 Jun 2024 16:22:43 +0200 Message-ID: To: FFmpeg development discussions and patches Content-Type: multipart/mixed; boundary="0000000000001e8004061bdfde09" Subject: Re: [FFmpeg-devel] [PATCH] libavcodec/mjpeg: keep last_dc value unclipped X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --0000000000001e8004061bdfde09 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, Jun 7, 2024 at 10:10=E2=80=AFPM Ramiro Polla wrote: > On Fri, Jun 7, 2024 at 9:35=E2=80=AFPM Andreas Rheinhardt > wrote: > > Ramiro Polla: > > > Do av_clip_int16(val) _after_ copying the value to last_dc. > > > > > > Related commits: c28f648b19d and dffae122d0f > > > Related ticket: 4683 > > > --- > > > libavcodec/mjpegdec.c | 3 +-- > > > tests/ref/fate/jpg-12bpp | 2 +- > > > 2 files changed, 2 insertions(+), 3 deletions(-) > > > > > > diff --git a/libavcodec/mjpegdec.c b/libavcodec/mjpegdec.c > > > index 1481a7f285..7daec649bc 100644 > > > --- a/libavcodec/mjpegdec.c > > > +++ b/libavcodec/mjpegdec.c > > > @@ -843,9 +843,8 @@ static int decode_block(MJpegDecodeContext *s, in= t16_t *block, int component, > > > return AVERROR_INVALIDDATA; > > > } > > > val =3D val * (unsigned)quant_matrix[0] + s->last_dc[component]; > > > - val =3D av_clip_int16(val); > > > s->last_dc[component] =3D val; > > > - block[0] =3D val; > > > + block[0] =3D av_clip_int16(val); > > > /* AC coefs */ > > > i =3D 0; > > > {OPEN_READER(re, &s->gb); > > > diff --git a/tests/ref/fate/jpg-12bpp b/tests/ref/fate/jpg-12bpp > > > index b3c662d587..9b039a92c6 100644 > > > --- a/tests/ref/fate/jpg-12bpp > > > +++ b/tests/ref/fate/jpg-12bpp > > > @@ -3,4 +3,4 @@ > > > #codec_id 0: rawvideo > > > #dimensions 0: 999x749 > > > #sar 0: 1/1 > > > -0, 0, 0, 1, 1496502, 0xd91deb4b > > > +0, 0, 0, 1, 1496502, 0x44efc0af > > > > Is the change for the fate-sample supposed to be an improvement or what > > is the rationale for this? (Is this change mandated by the spec?) > > As far as I can tell the only sample we have that triggers this is > buggy anyways, so it's not something spec-related. It seems more > correct to me to clip the values that overflow only for the block, and > not propagate the differences from the clipping to the next dc values. > > This change comes from another project where I decouple the bitstream > reading from the processing. Currently we have this comment in > MJpegDecodeContext: > int last_dc[MAX_COMPONENTS]; /* last DEQUANTIZED dc (XXX: am I right > to do that ?) */ > > What I do is keep the last quantized dc values as they were read from > the bitstream, but then I have to add the dc shift for every block. > Since it incurs one extra add per block, I'm not submitting the entire > patch, but only this chunk. Updated patch attached with (hopefully) more descriptive commit message. If there are no objections, I'll apply this tomorrow. --0000000000001e8004061bdfde09 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-libavcodec-mjpeg-preserve-unclipped-last_dc-value.patch" Content-Disposition: attachment; filename="0001-libavcodec-mjpeg-preserve-unclipped-last_dc-value.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lxxcqwqq0 RnJvbSAzMGJiY2FmODU5YmI5MGYwMjEzZDBiMTQyODRiMDhhZmU2OTMzYTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYW1pcm8gUG9sbGEgPHJhbWlyby5wb2xsYUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgNyBKdW4gMjAyNCAyMToyNjo1NCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGxp YmF2Y29kZWMvbWpwZWc6IHByZXNlcnZlIHVuY2xpcHBlZCBsYXN0X2RjIHZhbHVlCgpQZXJmb3Jt IGF2X2NsaXBfaW50MTYodmFsKSBfYWZ0ZXJfIGNvcHlpbmcgdGhlIHZhbHVlIHRvIGxhc3RfZGMu CgpUaGlzIGNoYW5nZSBlbnN1cmVzIHRoYXQgY2xpcHBpbmcgaXMgYXBwbGllZCBvbmx5IHdpdGhp biB0aGUgY29udGV4dCBvZgp0aGUgY3VycmVudCBibG9jaywgcHJldmVudGluZyB0aGUgcHJvcGFn YXRpb24gb2YgY2xpcHBlZCB2YWx1ZXMgdG8Kc3Vic2VxdWVudCBEQyBjb21wb25lbnRzLgoKUmVs YXRlZCBjb21taXRzOiBjMjhmNjQ4YjE5ZCBhbmQgZGZmYWUxMjJkMGYKUmVsYXRlZCB0aWNrZXQ6 IDQ2ODMKLS0tCiBsaWJhdmNvZGVjL21qcGVnZGVjLmMgICAgfCAzICstLQogdGVzdHMvcmVmL2Zh dGUvanBnLTEyYnBwIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy9tanBlZ2RlYy5jIGIvbGliYXZj b2RlYy9tanBlZ2RlYy5jCmluZGV4IDE0ODFhN2YyODUuLjdkYWVjNjQ5YmMgMTAwNjQ0Ci0tLSBh L2xpYmF2Y29kZWMvbWpwZWdkZWMuYworKysgYi9saWJhdmNvZGVjL21qcGVnZGVjLmMKQEAgLTg0 Myw5ICs4NDMsOCBAQCBzdGF0aWMgaW50IGRlY29kZV9ibG9jayhNSnBlZ0RlY29kZUNvbnRleHQg KnMsIGludDE2X3QgKmJsb2NrLCBpbnQgY29tcG9uZW50LAogICAgICAgICByZXR1cm4gQVZFUlJP Ul9JTlZBTElEREFUQTsKICAgICB9CiAgICAgdmFsID0gdmFsICogKHVuc2lnbmVkKXF1YW50X21h dHJpeFswXSArIHMtPmxhc3RfZGNbY29tcG9uZW50XTsKLSAgICB2YWwgPSBhdl9jbGlwX2ludDE2 KHZhbCk7CiAgICAgcy0+bGFzdF9kY1tjb21wb25lbnRdID0gdmFsOwotICAgIGJsb2NrWzBdID0g dmFsOworICAgIGJsb2NrWzBdID0gYXZfY2xpcF9pbnQxNih2YWwpOwogICAgIC8qIEFDIGNvZWZz ICovCiAgICAgaSA9IDA7CiAgICAge09QRU5fUkVBREVSKHJlLCAmcy0+Z2IpOwpkaWZmIC0tZ2l0 IGEvdGVzdHMvcmVmL2ZhdGUvanBnLTEyYnBwIGIvdGVzdHMvcmVmL2ZhdGUvanBnLTEyYnBwCmlu ZGV4IGIzYzY2MmQ1ODcuLjliMDM5YTkyYzYgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL2pw Zy0xMmJwcAorKysgYi90ZXN0cy9yZWYvZmF0ZS9qcGctMTJicHAKQEAgLTMsNCArMyw0IEBACiAj Y29kZWNfaWQgMDogcmF3dmlkZW8KICNkaW1lbnNpb25zIDA6IDk5OXg3NDkKICNzYXIgMDogMS8x Ci0wLCAgICAgICAgICAwLCAgICAgICAgICAwLCAgICAgICAgMSwgIDE0OTY1MDIsIDB4ZDkxZGVi NGIKKzAsICAgICAgICAgIDAsICAgICAgICAgIDAsICAgICAgICAxLCAgMTQ5NjUwMiwgMHg0NGVm YzBhZgotLSAKMi4zMC4yCgo= --0000000000001e8004061bdfde09 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". --0000000000001e8004061bdfde09--