From patchwork Mon Dec 11 01:35:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?Q2zDqW1lbnQgQsWTc2No?= X-Patchwork-Id: 45044 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp2652256pzf; Sun, 10 Dec 2023 17:47:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IEm3cpURnbzbMtbcF3kHW5zY/hO+AWfmMR6OygWhPb6+kbkG0W/6Hzok8ct8l/wXCg5sCeB X-Received: by 2002:ac2:42c6:0:b0:50b:f091:3342 with SMTP id n6-20020ac242c6000000b0050bf0913342mr1348473lfl.39.1702259236011; Sun, 10 Dec 2023 17:47:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702259235; cv=none; d=google.com; s=arc-20160816; b=xUQlolDvmCtDmiwVu2Bdk/f0hhWSaWPOYHEsGxE2SnOFXwGtAn4Y1lvXtzVXacHG9z Hj+eTEYHzoiJElK70wHVdiqzQq7+ZroKqjN+aysi3sZ3EEgzama9RCVhd2HCLPy1uQcy 7EKF79rFDwd2sg7S1oeHCpVftPmr/tUudW0g96CrBU8Kfzfll7+snwQlWzfGOcETmvcZ WINWs4rKyIclEW6/LI3ZV3GKo+Vd+VxWujQoYXR3hPkdpqn3NuPS8gBvDLV0lJeTrIq9 j99BlppM54JCElqcfU08BGWQE0zS36ag86ZWWVSTJnbNB8BMpp2q0FDeyH4tUTnEP1C+ xFAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=rEd3hlqST9pi6ldupfOouB6jdjDnvj6Ig/U6bjcMc68=; fh=Jgo3TCyoG8OdFLqA8BuM7Wbf1w27210JU6p+E8x39/M=; b=hq84t/0q+D+SBAeaPJ4octlUggtOtgMc9VpdOGLl/CBBNztTVbRxoJ+RJSr5M7beYe KcsmgCcJFsqLPX0Q1TQ8nfRlRDWiUQUE81EqKqZXlpSx4FNTDW4a2HWk7kjpmEZVHbr0 CauiWtcKXxfk1VY+SYuvsMtraqOEz4p+592eDEmrRCkAHegBcIPFlu8pQi+9GgK8vmd7 T4RDmiaa6LBOeSf15+qJkNya+7c5/YmVjD4ZbNSi0qvaQb4I5MieJVxJpZ4g7fm2xij2 Vd16JqDTGrWGXHep0ZsyEtPxIkM0FAf74QDz1v477mp8W6GnaepzMnmEb07CXbyyYu3c iuHw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@pkh.me header.s=selector1 header.b=IsXTbmKX; 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=pkh.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j21-20020a508a95000000b0054c91ee1620si3003208edj.263.2023.12.10.17.47.15; Sun, 10 Dec 2023 17:47:15 -0800 (PST) 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=@pkh.me header.s=selector1 header.b=IsXTbmKX; 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=pkh.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C22A568D18C; Mon, 11 Dec 2023 03:45:08 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ssq0.pkh.me (laubervilliers-656-1-228-164.w92-154.abo.wanadoo.fr [92.154.28.164]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 49CAC68D16E for ; Mon, 11 Dec 2023 03:44:56 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pkh.me; s=selector1; t=1702259077; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9Ri2cLMbKToPWbC6sbs+kDIGydwnsV8Csew8V6ySmKU=; b=IsXTbmKX8ZB0a/zQYXbNkZZe9/FaNVjYGprjk/2AC5O+kcM3OoIhIh9ge1wRiM9yVWRkEe eDsAknZxpHBbmzpdVcVGYsoiLEUo/g5cO7au70+YW8SM0RtgR1XqQ/hhQxfZBjnYuwTMsH j14hRTtrP14GeLefvHgzp8WEEZqvDCE= Received: from localhost (ssq0.pkh.me [local]) by ssq0.pkh.me (OpenSMTPD) with ESMTPA id 870b8db0; Mon, 11 Dec 2023 01:44:37 +0000 (UTC) From: =?utf-8?b?Q2zDqW1lbnQgQsWTc2No?= To: ffmpeg-devel@ffmpeg.org Date: Mon, 11 Dec 2023 02:35:21 +0100 Message-ID: <20231211014429.1841681-21-u@pkh.me> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231211014429.1841681-1-u@pkh.me> References: <20231211014429.1841681-1-u@pkh.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 20/35] avcodec/proresenc_anatoliy: compute sign only once 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 Cc: =?utf-8?b?Q2zDqW1lbnQgQsWTc2No?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: q6Gz9RST96n5 This makes the function closer to encode_dcs() in proresenc_kostya. --- libavcodec/proresenc_anatoliy.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c index 0de262c9c5..0d8ca5515f 100644 --- a/libavcodec/proresenc_anatoliy.c +++ b/libavcodec/proresenc_anatoliy.c @@ -257,7 +257,6 @@ static void encode_vlc_codeword(PutBitContext *pb, unsigned codebook, int val) #define GET_SIGN(x) ((x) >> 31) #define TO_GOLOMB(val) (((val) * 2) ^ GET_SIGN(val)) -#define DIFF_SIGN(val, sign) (GET_SIGN(val) ^ (sign)) #define IS_NEGATIVE(val) ((GET_SIGN(val) ^ -1) + 1) #define TO_GOLOMB2(val,sign) ((val)==0 ? 0 : ((val) << 1) + (sign)) @@ -272,7 +271,7 @@ static void encode_dcs(PutBitContext *pb, int16_t *blocks, int blocks_per_slice, int *qmat) { int prev_dc, codebook; - int i, sign; + int i, sign, new_sign; int new_dc, delta, diff_sign, code; prev_dc = (blocks[0] - 0x4000) / qmat[0]; @@ -284,13 +283,14 @@ static void encode_dcs(PutBitContext *pb, int16_t *blocks, for (i = 1; i < blocks_per_slice; i++, blocks += 64) { new_dc = (blocks[0] - 0x4000) / qmat[0]; delta = new_dc - prev_dc; - diff_sign = DIFF_SIGN(delta, sign); + new_sign = GET_SIGN(delta); + diff_sign = new_sign ^ sign; code = TO_GOLOMB2(get_level(delta), diff_sign); encode_vlc_codeword(pb, ff_prores_dc_codebook[codebook], code); codebook = FFMIN(code, 6); - sign = delta >> 31; + sign = new_sign; prev_dc = new_dc; } }