From patchwork Mon Dec 11 01:35:15 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: 45040 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp2652095pzf; Sun, 10 Dec 2023 17:46:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IF6KDgIy/jdJ3SXOSC8CWSIS8meOfeqxvogcp1ZuSoCVrK1UG8D0cwNVArfvtnECbHruTQk X-Received: by 2002:a50:99c9:0:b0:54c:d1a2:45fc with SMTP id n9-20020a5099c9000000b0054cd1a245fcmr3731853edb.3.1702259203288; Sun, 10 Dec 2023 17:46:43 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702259203; cv=none; d=google.com; s=arc-20160816; b=hyXN9Wqv7oOAijfaAnoP8mJJi+tPVSXCXwNouVZElPOGXH33ycnndL8kmpeztag8K7 dV3VKkGa+KtuTXzxkCqScYqAaBvkR+GVLzEe0onrW35StvBpVNON+2pVo8IZn8xN4h7k OLI9E5CvNsWCqD0RjUzBJjvGf/GksAjy0IG8HkKrp7Pu0Csi34eLrUdJbIdtRllRGAh5 4AUkKYcze8vFJHRX7Pegn/XHwgaKWtLXa0kYj8gSpaBozSuXMBOlT6TGW0yMEs/ie3T4 sHZaOTw9MeaWNS1QQsrKSp5p1fBJtq1kC0Z0mqxLdFUdAfTeBaObBYRCsfU789KF+5g0 4KTw== 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=3RfcvhyMHNXtRual4vAM87dYx+MI+Uvo8NaGlmWdDIA=; fh=Jgo3TCyoG8OdFLqA8BuM7Wbf1w27210JU6p+E8x39/M=; b=biUeoh3Q6MvcSCPVpw62JlcRQ8SUi+NUF5ucPtGdcrYtdSmvp2sWwFwORbke1izK4I Ht291ZNjjm2OgbhYeHG97WT4gSCwpl51NVGD2aGQriZgCK6/k3rKPXTgWyzR7kCP3AxZ NTAAhEvwQqYXnDvFwpBThFX9kqol8FSvKyMmhaAqDf0qP+bdNdcRsdcVTny1neJTawSr mw83OVnDXbimQE1yCnMF0Jez3MYp5RASLsc4IHcUWWsnRnJG2MDirAapnznN21X8jQnb le7avzAVF9swretw9FRI42zyjJ4LO1xKtXhaloZiD85160eXo6qkdMBIZnD/0KLsjsfg M1PQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@pkh.me header.s=selector1 header.b=I0gDCIrk; 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 q5-20020a50cc85000000b0054c511feceasi1367503edi.195.2023.12.10.17.46.42; Sun, 10 Dec 2023 17:46:43 -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=I0gDCIrk; 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 D118C68D188; Mon, 11 Dec 2023 03:45:04 +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 F2FBD68D15C for ; Mon, 11 Dec 2023 03:44:55 +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=TV+moDhTIhipzMteuPkQ9dZv3KuGcXIawUhwMNjeY/o=; b=I0gDCIrkfOkaqJ7cTw5tMMiSZbAY8AvNPfHmDqYOqW33AqijRAzF8ASbbcJChlraDzFBcD w+yEcG9lCjwHKqABL1GZPvCUwcbtO/VjupitLiZW4k6Q6t+AvRdewuOCJvqf1vRx2EOliK j8GpuChC9KTKRxf7GoaPj9EYc7sA/Lo= Received: from localhost (ssq0.pkh.me [local]) by ssq0.pkh.me (OpenSMTPD) with ESMTPA id 56ab491b; 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:15 +0100 Message-ID: <20231211014429.1841681-15-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 14/35] avcodec/proresenc_anatoliy: inline QSCALE() 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: xxan5Mc/HNfO Also replaces 16384 with 0x4000. This makes the function slightly closer to same function in proresenc_kostya. --- libavcodec/proresenc_anatoliy.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/libavcodec/proresenc_anatoliy.c b/libavcodec/proresenc_anatoliy.c index 86e436615c..b8433ee872 100644 --- a/libavcodec/proresenc_anatoliy.c +++ b/libavcodec/proresenc_anatoliy.c @@ -255,7 +255,6 @@ static void encode_vlc_codeword(PutBitContext *pb, unsigned codebook, int val) } } -#define QSCALE(qmat,ind,val) ((val) / ((qmat)[ind])) #define TO_GOLOMB(val) (((val) * 2) ^ ((val) >> 31)) #define DIFF_SIGN(val, sign) (((val) >> 31) ^ (sign)) #define IS_NEGATIVE(val) ((((val) >> 31) ^ -1) + 1) @@ -275,13 +274,13 @@ static void encode_dc_coeffs(PutBitContext *pb, int16_t *in, int i, sign, idx; int new_dc, delta, diff_sign, new_code; - prev_dc = QSCALE(qmat, 0, in[0] - 16384); + prev_dc = (in[0] - 0x4000) / qmat[0]; code = TO_GOLOMB(prev_dc); encode_vlc_codeword(pb, FIRST_DC_CB, code); code = 5; sign = 0; idx = 64; for (i = 1; i < blocks_per_slice; i++, idx += 64) { - new_dc = QSCALE(qmat, 0, in[idx] - 16384); + new_dc = (in[idx] - 0x4000) / qmat[0]; delta = new_dc - prev_dc; diff_sign = DIFF_SIGN(delta, sign); new_code = TO_GOLOMB2(get_level(delta), diff_sign); @@ -304,7 +303,7 @@ static void encode_ac_coeffs(PutBitContext *pb, for (i = 1; i < 64; i++) { int indp = ff_prores_scan[i]; for (j = 0; j < blocks_per_slice; j++) { - int val = QSCALE(qmat, indp, in[(j << 6) + indp]); + int val = (in[(j << 6) + indp]) / qmat[indp]; if (val) { encode_vlc_codeword(pb, ff_prores_run_to_cb[FFMIN(prev_run, 15)], run);