From patchwork Mon Oct 17 02:36:29 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peter Ross X-Patchwork-Id: 38760 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:4a86:b0:9d:28a3:170e with SMTP id fn6csp1390269pzb; Sun, 16 Oct 2022 19:36:58 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5Tv2fuHkDorFU/jHxBwH3qcA15Hb+7ze/7EKu2J3BnIrDlkkzzdMshUEKSbc9RsbNoxIJj X-Received: by 2002:a17:907:96a3:b0:790:65a:3a0a with SMTP id hd35-20020a17090796a300b00790065a3a0amr6239314ejc.728.1665974218200; Sun, 16 Oct 2022 19:36:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1665974218; cv=none; d=google.com; s=arc-20160816; b=Jv++Ppoad2Y1J3iF/iVpRSMay0kkJ7ObhPY+SXzcmdGGuQmncZTpQwnsc2JNOWtsFg dJIhYJ92xa6MQ8c1xwb40dvd1zCfRAci+V230xuqhCUYcXP+6jpVHUipeAiH7e4rA50R 48FHVkztcKcdXZLHZCsJMuTJyJag9Af3mc0aXRbnxGB6Zr6EnWtNBgNy6caHMTeYPM30 RKHS1hUWqKj9vZmN/kC9vtKZl0jSc89ZPHVbRNrGb+EJSjgvqYNFQQC4Icfkp6j3gAGh 4JddlBzoiYyTuZmDrPpI5ghZ8hZve0SBkdtbdZZuQ9zfC3nm//KgmnwgCUnT8ajWf3eE oESw== 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 :mime-version:message-id:to:from:date:delivered-to; bh=ATbksFWLVVC54aSoyCgwjIKZu38eAYpJjAWQy57lcMk=; b=g+tW4cKs2LnUJzBXXOtFNNYsr52ZFzra77ZowUSAMNHWmB8GZgjri2vOJdu0rJQSH/ dJxA+/NcK4TLdkQgGcsPmp8QnCDTDFG7KVzm4hNMNZqCgFKEXcmAr9bTpfvFNgxdzg+g zehfBWxCceN1ITe/+SkRxDGB1vexPGu/OWBLW8nDsmXygW66YsxKZQuMBqLupsYB5uOh IiT4TbEXdvLyBaKLEXlcdirjmZNeNUWH6KF53pFGzqKowBzm0e3Z/pHRvfK+1We9C40P CpzvBsT2Y7WXJ2sfPXec6/TWTkc4Nup886YfQiS0tCZfAWmDntgQQgQUEDc1Gi19Rr6n LkaA== 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 r11-20020a05640251cb00b0045d9ceae6d8si1182907edd.492.2022.10.16.19.36.57; Sun, 16 Oct 2022 19:36:58 -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 C98DD68BC8F; Mon, 17 Oct 2022 05:36:53 +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 EB05168BACD for ; Mon, 17 Oct 2022 05:36:45 +0300 (EEST) Received: from fec08ea42f77375e1b3adc0238ae6674 ([1.145.219.0]) (authenticated (0 bits)) by mx.sdf.org (8.15.2/8.14.5) with ESMTPSA id 29H2aX5i002230 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256 bits) verified NO) for ; Mon, 17 Oct 2022 02:36:37 GMT Date: Mon, 17 Oct 2022 13:36:29 +1100 From: Peter Ross To: ffmpeg-devel@ffmpeg.org Message-ID: MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/svq1: fix interframe mean VLC 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: V1DAHHA7iCJp Fixes ticket #128. The SVQ1 interframe mean VLC symbols -128 and 128 are incorrectly swapped in our SVQ1 implementation, resulting in visible artifacts for some videos. This patch unswaps the order of these two symbols. The most noticable example of the artiacts caused by this error can be observed in https://trac.ffmpeg.org/attachment/ticket/128/svq1_set.7z '352_288_k_50.mov'. The artifacts are not observed when using the reference decoder (QuickTime 7.7.9 x86 binary). As a result of this patch, the reference data for the fate-svq1 test ($SAMPLES/svq1/marymary-shackles.mov) must be modified. For this file, our decoder output is now bitwise identical to the reference decoder. I have tested patch with various other samples and they are all now bitwise identical. --- libavcodec/svq1_vlc.h | 4 ++-- tests/ref/fate/svq1 | 22 +++++++++++----------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/libavcodec/svq1_vlc.h b/libavcodec/svq1_vlc.h index 06e3509e4d..5c27928c2a 100644 --- a/libavcodec/svq1_vlc.h +++ b/libavcodec/svq1_vlc.h @@ -167,7 +167,7 @@ const uint16_t ff_svq1_inter_mean_vlc[512][2] = { { 0xA0, 22 }, { 0xA1, 22 }, { 0xA2, 22 }, { 0xA3, 22 }, { 0xA4, 22 }, { 0xA5, 22 }, { 0xA6, 22 }, { 0xA7, 22 }, { 0xA8, 22 }, { 0xA9, 22 }, { 0xAA, 22 }, { 0xAB, 22 }, - { 0x7F, 22 }, { 0x8F, 21 }, { 0xAC, 22 }, { 0xAD, 22 }, + { 0x8E, 21 }, { 0x8F, 21 }, { 0xAC, 22 }, { 0xAD, 22 }, { 0xAE, 22 }, { 0xAF, 22 }, { 0xB0, 22 }, { 0xB1, 22 }, { 0x53, 20 }, { 0x90, 21 }, { 0xB2, 22 }, { 0x91, 21 }, { 0xB3, 22 }, { 0xB4, 22 }, { 0x54, 20 }, { 0xB5, 22 }, @@ -231,7 +231,7 @@ const uint16_t ff_svq1_inter_mean_vlc[512][2] = { { 0x87, 21 }, { 0x4F, 20 }, { 0x35, 19 }, { 0x4E, 20 }, { 0x33, 19 }, { 0x32, 19 }, { 0x4D, 20 }, { 0x4C, 20 }, { 0x83, 22 }, { 0x4B, 20 }, { 0x81, 22 }, { 0x80, 22 }, - { 0x8E, 21 }, { 0x7E, 22 }, { 0x7D, 22 }, { 0x84, 21 }, + { 0x7F, 22 }, { 0x7E, 22 }, { 0x7D, 22 }, { 0x84, 21 }, { 0x8D, 21 }, { 0x7A, 22 }, { 0x79, 22 }, { 0x4A, 20 }, { 0x77, 22 }, { 0x76, 22 }, { 0x89, 21 }, { 0x74, 22 }, { 0x73, 22 }, { 0x72, 22 }, { 0x49, 20 }, { 0x70, 22 }, diff --git a/tests/ref/fate/svq1 b/tests/ref/fate/svq1 index d53e2952e4..0b0948cce6 100644 --- a/tests/ref/fate/svq1 +++ b/tests/ref/fate/svq1 @@ -24,19 +24,19 @@ 0, 18, 18, 1, 21600, 0x8d5b2ad0 0, 19, 19, 1, 21600, 0xe67128e6 0, 20, 20, 1, 21600, 0xb7bf613e -0, 21, 21, 1, 21600, 0xefd0f51b -0, 22, 22, 1, 21600, 0x31b7da59 +0, 21, 21, 1, 21600, 0xf697fa3e +0, 22, 22, 1, 21600, 0x5b6ede88 0, 23, 23, 1, 21600, 0x7a84a8f7 0, 24, 24, 1, 21600, 0x0351ad27 -0, 25, 25, 1, 21600, 0xed6f434d -0, 26, 26, 1, 21600, 0x0e771127 -0, 27, 27, 1, 21600, 0x37bf0b95 -0, 28, 28, 1, 21600, 0x30e10a77 -0, 29, 29, 1, 21600, 0x1a48288a -0, 30, 30, 1, 21600, 0xf43c6770 -0, 31, 31, 1, 21600, 0x3c43ae68 -0, 32, 32, 1, 21600, 0x04dc0949 -0, 33, 33, 1, 21600, 0x7920758d +0, 25, 25, 1, 21600, 0x57b547c2 +0, 26, 26, 1, 21600, 0xbb9e1558 +0, 27, 27, 1, 21600, 0xcb470f6b +0, 28, 28, 1, 21600, 0xeb100de0 +0, 29, 29, 1, 21600, 0x089c2bf0 +0, 30, 30, 1, 21600, 0xe27b6a42 +0, 31, 31, 1, 21600, 0xbfe2b11b +0, 32, 32, 1, 21600, 0xd9ca0bb5 +0, 33, 33, 1, 21600, 0x12fe783c 0, 34, 34, 1, 21600, 0x6c12bab5 0, 35, 35, 1, 21600, 0x1ac23706 0, 36, 36, 1, 21600, 0x7a95cb5f