From patchwork Thu Oct 20 01:30:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Ross X-Patchwork-Id: 38830 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp659136pzb; Wed, 19 Oct 2022 18:30:32 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5oqeiVPJ9hTA2qSGXPA/liNGGbsIccsxyJzF2MANKuSgaVxj5rMtAxzECNNPTrnG04shTG X-Received: by 2002:a17:907:6087:b0:78d:ee99:a06a with SMTP id ht7-20020a170907608700b0078dee99a06amr9056566ejc.52.1666229431966; Wed, 19 Oct 2022 18:30:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666229431; cv=none; d=google.com; s=arc-20160816; b=HekaMVW8O5V6t5d3RlUrbymIMOdxcf1fWKYBveaXw/UyNyiVetGf1I7vpnFAZhdoPQ qETnumZQp5oPwqKe+NagrmE+H7zSUm1IEfXxysle6MmvU8kz1DZE0SNRrTAJEbWKlqM5 XBBYDtfmDIZV66Pby6ydw8ckLDHccu3I5e2zIE5H0bxjeL20do3raaPuroLnMkLW1uLE lHA93GfX1eaROMnGNHLd8CcYxpN+HeNm5msqHiXQp3Xk8cxPMz8YkFO4jo+GgHT9fwMq 9Q174ozLPhEdJZQXWgXBq6pNJcZ+FXQkodWwrmwIGit4Ip4hpQLNO8VXcR2es8rrU7t1 UFWg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :in-reply-to:mime-version:references:message-id:to:from:date :delivered-to; bh=Og2bvyB9NhbqxqeQWmvfu9ONccuql0M0hxN1JkfsJfs=; b=dSBSkptqzYI+ZSjvJ2e5Aey1T26uSUzX9MZQh2juRNfYPb4X3NQHx6cyTsXWNFTBtb BcH0ickxfWCznNVSgJ3KXEeEeVeceEQnxOpDnRaCbZAtotP9z05WwM7pax4MSHhapt0b +Lw/0Gwss8L3i6OXlHrO4x3WlrrrpQ6AQRXINENKpuCtP18NXsHg9qow2qdCknNXwzHQ yMVw1Gi8UqiM3o8PbeccrWZhc0YxUGvo2uHxTYAknsDvw7kyovFviGOr7bHrgUjo9g8z 6mJ61IeCBWxr0t6tYAnqxa+8V4x9LTejcYHRe1XWxxASh2KQNklpxg/s0sg3uLwsOcij chrQ== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id e12-20020a056402190c00b0045d9a3adf48si10538153edz.591.2022.10.19.18.30.31; Wed, 19 Oct 2022 18:30:31 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 38EDB68BDA4; Thu, 20 Oct 2022 04:30:29 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mx.sdf.org (mx.sdf.org [205.166.94.24]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F58968BC68 for ; Thu, 20 Oct 2022 04:30:22 +0300 (EEST) Received: from d0bc8d166857e96f6d916e78ee880a5f ([1.145.213.234]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id 29K1UG7E014553 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO) for ; Thu, 20 Oct 2022 01:30:20 GMT Date: Thu, 20 Oct 2022 12:30:12 +1100 From: Peter Ross To: ffmpeg-devel@ffmpeg.org Message-ID: References: <406d03fabf0bcf44fbfc894cf9960e3ad3947caf.1666229366.git.pross@xvid.org> MIME-Version: 1.0 In-Reply-To: <406d03fabf0bcf44fbfc894cf9960e3ad3947caf.1666229366.git.pross@xvid.org> Subject: [FFmpeg-devel] [PATCHv2 2/4] avcodec/svq1enc: do not use ambiguous interframe mean symbols 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" X-TUID: i5biWrLL5dKO Don't emit interframe mean symbols -128 and 128 to maintain compatibility with older versions of FFmpeg that incorrectly interpret these symbols. --- libavcodec/svq1enc.c | 5 +++++ tests/ref/seek/vsynth_lena-svq1 | 28 ++++++++++++++-------------- tests/ref/vsynth/vsynth1-svq1 | 8 ++++---- tests/ref/vsynth/vsynth2-svq1 | 6 +++--- tests/ref/vsynth/vsynth3-svq1 | 6 +++--- tests/ref/vsynth/vsynth_lena-svq1 | 6 +++--- 6 files changed, 32 insertions(+), 27 deletions(-) diff --git a/libavcodec/svq1enc.c b/libavcodec/svq1enc.c index 75adbe7ea0..9bd5a04368 100644 --- a/libavcodec/svq1enc.c +++ b/libavcodec/svq1enc.c @@ -234,6 +234,11 @@ static int encode_block(SVQ1EncContext *s, uint8_t *src, uint8_t *ref, } } + if (best_mean == -128) + best_mean = -127; + else if (best_mean == 128) + best_mean = 127; + split = 0; if (best_score > threshold && level) { int score = 0; diff --git a/tests/ref/seek/vsynth_lena-svq1 b/tests/ref/seek/vsynth_lena-svq1 index 33fe33e916..36c0fb7f4e 100644 --- a/tests/ref/seek/vsynth_lena-svq1 +++ b/tests/ref/seek/vsynth_lena-svq1 @@ -2,49 +2,49 @@ ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st:-1 flags:0 ts:-1.000000 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st:-1 flags:1 ts: 1.894167 -ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517568 size: 25636 +ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517672 size: 25636 ret: 0 st: 0 flags:0 ts: 0.788359 -ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326556 size: 23552 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326616 size: 23552 ret: 0 st: 0 flags:1 ts:-0.317500 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret:-1 st:-1 flags:0 ts: 2.576668 ret: 0 st:-1 flags:1 ts: 1.470835 -ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517568 size: 25636 +ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517672 size: 25636 ret: 0 st: 0 flags:0 ts: 0.365000 -ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157040 size: 21896 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157232 size: 21896 ret: 0 st: 0 flags:1 ts:-0.740859 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret:-1 st:-1 flags:0 ts: 2.153336 ret: 0 st:-1 flags:1 ts: 1.047503 -ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326556 size: 23552 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326616 size: 23552 ret: 0 st: 0 flags:0 ts:-0.058359 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st: 0 flags:1 ts: 2.835859 -ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722804 size: 25888 +ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722884 size: 25888 ret: 0 st:-1 flags:0 ts: 1.730004 -ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722804 size: 25888 +ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722884 size: 25888 ret: 0 st:-1 flags:1 ts: 0.624171 -ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157040 size: 21896 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157232 size: 21896 ret: 0 st: 0 flags:0 ts:-0.481641 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st: 0 flags:1 ts: 2.412500 -ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722804 size: 25888 +ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722884 size: 25888 ret: 0 st:-1 flags:0 ts: 1.306672 -ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517568 size: 25636 +ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517672 size: 25636 ret: 0 st:-1 flags:1 ts: 0.200839 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st: 0 flags:0 ts:-0.905000 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret: 0 st: 0 flags:1 ts: 1.989141 -ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722804 size: 25888 +ret: 0 st: 0 flags:1 dts: 1.920000 pts: 1.920000 pos: 722884 size: 25888 ret: 0 st:-1 flags:0 ts: 0.883340 -ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326556 size: 23552 +ret: 0 st: 0 flags:1 dts: 0.960000 pts: 0.960000 pos: 326616 size: 23552 ret: 0 st:-1 flags:1 ts:-0.222493 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 ret:-1 st: 0 flags:0 ts: 2.671641 ret: 0 st: 0 flags:1 ts: 1.565859 -ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517568 size: 25636 +ret: 0 st: 0 flags:1 dts: 1.440000 pts: 1.440000 pos: 517672 size: 25636 ret: 0 st:-1 flags:0 ts: 0.460008 -ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157040 size: 21896 +ret: 0 st: 0 flags:1 dts: 0.480000 pts: 0.480000 pos: 157232 size: 21896 ret: 0 st:-1 flags:1 ts:-0.645825 ret: 0 st: 0 flags:1 dts: 0.000000 pts: 0.000000 pos: 36 size: 22300 diff --git a/tests/ref/vsynth/vsynth1-svq1 b/tests/ref/vsynth/vsynth1-svq1 index 1970f779fc..e91ef46f17 100644 --- a/tests/ref/vsynth/vsynth1-svq1 +++ b/tests/ref/vsynth/vsynth1-svq1 @@ -1,4 +1,4 @@ -66933a2b34e123a9fc612cbc4dbbe353 *tests/data/fate/vsynth1-svq1.mov -1334233 tests/data/fate/vsynth1-svq1.mov -9cc35c54b2c77d36bd7e308b393c1f81 *tests/data/fate/vsynth1-svq1.out.rawvideo -stddev: 9.58 PSNR: 28.50 MAXDIFF: 210 bytes: 7603200/ 7603200 +78cdca850b19faf3aac0b0682207451e *tests/data/fate/vsynth1-svq1.mov +1333541 tests/data/fate/vsynth1-svq1.mov +0b9ee47ee4bf735fe3697daad64fc409 *tests/data/fate/vsynth1-svq1.out.rawvideo +stddev: 9.57 PSNR: 28.50 MAXDIFF: 210 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth2-svq1 b/tests/ref/vsynth/vsynth2-svq1 index 32a0b80df2..b50ba45e20 100644 --- a/tests/ref/vsynth/vsynth2-svq1 +++ b/tests/ref/vsynth/vsynth2-svq1 @@ -1,4 +1,4 @@ -6ba5415d077304dc73ba8d8aaccb15eb *tests/data/fate/vsynth2-svq1.mov -940285 tests/data/fate/vsynth2-svq1.mov -a8cd3b833cd7f570ddbf1e6b3eb125b6 *tests/data/fate/vsynth2-svq1.out.rawvideo +42578021105a2f526179c5601e635312 *tests/data/fate/vsynth2-svq1.mov +940337 tests/data/fate/vsynth2-svq1.mov +ba8f6b721a8e19fe8a6ef92a8cff7479 *tests/data/fate/vsynth2-svq1.out.rawvideo stddev: 3.71 PSNR: 36.72 MAXDIFF: 210 bytes: 7603200/ 7603200 diff --git a/tests/ref/vsynth/vsynth3-svq1 b/tests/ref/vsynth/vsynth3-svq1 index e760abbdb4..ba1d3d5082 100644 --- a/tests/ref/vsynth/vsynth3-svq1 +++ b/tests/ref/vsynth/vsynth3-svq1 @@ -1,4 +1,4 @@ -1972e0df8be667443992e405cceec291 *tests/data/fate/vsynth3-svq1.mov -40773 tests/data/fate/vsynth3-svq1.mov -a1e5334cf67649bf8c7d95dc4d1bf148 *tests/data/fate/vsynth3-svq1.out.rawvideo +03805cb764c00c2162b2bed24b7f34bd *tests/data/fate/vsynth3-svq1.mov +40757 tests/data/fate/vsynth3-svq1.mov +a99efde992a2e3efcc085ecc6920a1e3 *tests/data/fate/vsynth3-svq1.out.rawvideo stddev: 14.49 PSNR: 24.91 MAXDIFF: 183 bytes: 86700/ 86700 diff --git a/tests/ref/vsynth/vsynth_lena-svq1 b/tests/ref/vsynth/vsynth_lena-svq1 index e0614df3f9..94f260865a 100644 --- a/tests/ref/vsynth/vsynth_lena-svq1 +++ b/tests/ref/vsynth/vsynth_lena-svq1 @@ -1,4 +1,4 @@ -bbe2b28fcef16aa088d29984931eea6a *tests/data/fate/vsynth_lena-svq1.mov -766701 tests/data/fate/vsynth_lena-svq1.mov -aa03471dac3f49455a33a2b19fda1098 *tests/data/fate/vsynth_lena-svq1.out.rawvideo +7534b2c6b7fc7201f193e9b4514cdb90 *tests/data/fate/vsynth_lena-svq1.mov +766817 tests/data/fate/vsynth_lena-svq1.mov +85261558fa744ef468fe77dbe4d91d8d *tests/data/fate/vsynth_lena-svq1.out.rawvideo stddev: 3.23 PSNR: 37.93 MAXDIFF: 61 bytes: 7603200/ 7603200