From patchwork Wed Apr 10 13:31:18 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anton Khirnov X-Patchwork-Id: 48004 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c90a:b0:1a7:a0dc:8de5 with SMTP id gx10csp557341pzb; Wed, 10 Apr 2024 06:32:49 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVoUYpiK0b21Fweoz1AO2+ljJIQsbgnSlmC9NaguhnjTKrchTm1gge0j4PXyzNJqDpvM9ohR5mAjkaNXJRv+RLgKqRWhRdAFH+ycw== X-Google-Smtp-Source: AGHT+IFbfBoa6PvEzTVVo362pGOBneeBymWoncwtYDVLNFCqJ/6pOYO4/NX1fEcgbHcNMSrTKthp X-Received: by 2002:a17:906:18b2:b0:a51:b228:9282 with SMTP id c18-20020a17090618b200b00a51b2289282mr1527868ejf.44.1712755969382; Wed, 10 Apr 2024 06:32:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712755969; cv=none; d=google.com; s=arc-20160816; b=k7BrliNYqXfg2NskcHJuWw3NrgbP/+0D+5hfjIYr5fE4QQvNkGWAhIDOgttuLBip8P 1ICT2WYQNMjaVKPqQgWpcEOL7CsDKdiPrEbVwXCltHsHWYdnF5SWh5fxZkeToRyAWPOb 6BvQZGAXm04Xqx4kbDGiZncO+rm4xYd3P1N1Uo6OliYwqFy3tdNJoDl6Qzk/r42spJrr zvrVA2Bohp0QcQ5SFZwHkJrwLZIfVjoXy3VXZtriDoVOa4vnU6Gy4GJmdq1xQvrrMU0C ADKW86aKIseOOH1hq4aktDQEBBIJuPa6DITGVjSv0sHxrCCYyzsQpoGRlCdv8v8S3FdG gNSA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding: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=co99isVAMTiKuNFkBSzEyRDgTXI1KyFILH+R7m171/k=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=eHUNyqYcWHTdcIR0teMDwGNvluGmrAUV6hH3/oqVwP8So1KUYdkjafWlB1ysupr7bS Di1eQ60tUUyKH3Q9M022jp9BPTC7VR25PJhfZD9fR+F4XBiNAS2f0ODW3nf7DOYZybsM cVQ0c0iGajoBo7Ve0TSBgzTsQRuRVpfWnSPL5nyPoqbTv8q2LJEM+FBcqBDiCNGMnBCw K5Q8nFvvg5fvXKuTKhCwKCRVAqN+2fG7PM1lwd2qWIuQ29seCJd6EtL4VQG8w7GgwJtH VrZESUw9Ip4fSdMd4/OCKTHAJ+l6OvgcX4BbAw6tF264x4t/LplZ+yN1NH9zvWO1wrSr ls3Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=A3lrZf20; 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 m4-20020a1709066d0400b00a519055c375si5887534ejr.152.2024.04.10.06.32.49; Wed, 10 Apr 2024 06:32:49 -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; dkim=neutral (body hash did not verify) header.i=@khirnov.net header.s=mail header.b=A3lrZf20; 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 6C11868D1CF; Wed, 10 Apr 2024 16:31:42 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail1.khirnov.net (quelana.khirnov.net [94.230.150.81]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4E12E68CF45 for ; Wed, 10 Apr 2024 16:31:33 +0300 (EEST) Authentication-Results: mail1.khirnov.net; dkim=pass (2048-bit key; unprotected) header.d=khirnov.net header.i=@khirnov.net header.a=rsa-sha256 header.s=mail header.b=A3lrZf20; dkim-atps=neutral Received: from localhost (mail1.khirnov.net [IPv6:::1]) by mail1.khirnov.net (Postfix) with ESMTP id CEF604D7D for ; Wed, 10 Apr 2024 15:31:27 +0200 (CEST) Received: from mail1.khirnov.net ([IPv6:::1]) by localhost (mail1.khirnov.net [IPv6:::1]) (amavis, port 10024) with ESMTP id 3tqA2kaCusP0 for ; Wed, 10 Apr 2024 15:31:27 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=khirnov.net; s=mail; t=1712755885; bh=Xl2JxrTNuYFfrvPscVVBjgtsAAWr+/ahWBAfuweX4yQ=; h=From:To:Subject:Date:In-Reply-To:References:From; b=A3lrZf206LGDD0VTbN99iS6WciGVQIEIKd4RHdCupSFrxNw+/7I+O5ss1IjYYU+dG enYMWrzfXNjFXvlQl+gcSReeusc0rCdueqqyttDa/32iXx3r3PTV2xDMrdI9sq3+5E BIwQJZCoqB/yY9kj/YXdwBqgL0XoWBKres3DYWZ89KbgQBzbsUuGfYq90gTGMyIHh9 dfzylmOTcqlmFmm/myHNuv3ZAlOqVyj3s5Jiztz8OyTA0RTbepjyUahHsGy+J6O5cA u9jruz6OxxXADRWGSGcA7lE/Ld2gaLvwV0ZVB51ilSLme8Y5pJYjAvuEjU5A/yJ6Fx AnriiVI+HXMdw== Received: from libav.khirnov.net (libav.khirnov.net [IPv6:2a00:c500:561:201::7]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "libav.khirnov.net", Issuer "smtp.khirnov.net SMTP CA" (verified OK)) by mail1.khirnov.net (Postfix) with ESMTPS id 021934D86 for ; Wed, 10 Apr 2024 15:31:25 +0200 (CEST) Received: from libav.khirnov.net (libav.khirnov.net [IPv6:::1]) by libav.khirnov.net (Postfix) with ESMTP id EAA9C3A0357 for ; Wed, 10 Apr 2024 15:31:24 +0200 (CEST) From: Anton Khirnov To: ffmpeg-devel@ffmpeg.org Date: Wed, 10 Apr 2024 15:31:18 +0200 Message-ID: <20240410133118.28144-10-anton@khirnov.net> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240410133118.28144-1-anton@khirnov.net> References: <20240410133118.28144-1-anton@khirnov.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/10] lavc/hevc_ps: compactify ShortTermRPS 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: hu3kmhfVgITD Do not use larger fields than needed, use size-1 bitfields for flags. Reduces sizeof(HEVCSPS) by 1280 bytes. --- libavcodec/hevc_ps.c | 6 +++--- libavcodec/hevc_ps.h | 19 +++++++++++-------- libavcodec/vulkan_hevc.c | 2 +- 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/libavcodec/hevc_ps.c b/libavcodec/hevc_ps.c index 76fe507e7b..7b486ce0af 100644 --- a/libavcodec/hevc_ps.c +++ b/libavcodec/hevc_ps.c @@ -143,11 +143,11 @@ int ff_hevc_decode_short_term_rps(GetBitContext *gb, AVCodecContext *avctx, for (i = 0; i <= rps_ridx->num_delta_pocs; i++) { used[k] = get_bits1(gb); - rps->use_delta_flag = 0; + rps->use_delta = 0; if (!used[k]) - rps->use_delta_flag = get_bits1(gb); + rps->use_delta = get_bits1(gb); - if (used[k] || rps->use_delta_flag) { + if (used[k] || rps->use_delta) { if (i < rps_ridx->num_delta_pocs) delta_poc = delta_rps + rps_ridx->delta_poc[i]; else diff --git a/libavcodec/hevc_ps.h b/libavcodec/hevc_ps.h index 92b85115f7..a8d07aa1b2 100644 --- a/libavcodec/hevc_ps.h +++ b/libavcodec/hevc_ps.h @@ -70,16 +70,19 @@ typedef struct HEVCHdrParams { } HEVCHdrParams; typedef struct ShortTermRPS { - uint8_t rps_predict; - unsigned int delta_idx; - uint8_t use_delta_flag; - uint8_t delta_rps_sign; - unsigned int abs_delta_rps; - unsigned int num_negative_pics; - int num_delta_pocs; - int rps_idx_num_delta_pocs; int32_t delta_poc[32]; uint32_t used; + + uint8_t delta_idx; + uint8_t num_negative_pics; + uint8_t num_delta_pocs; + uint8_t rps_idx_num_delta_pocs; + + uint16_t abs_delta_rps; + unsigned delta_rps_sign:1; + + unsigned rps_predict:1; + unsigned use_delta:1; } ShortTermRPS; typedef struct HEVCWindow { diff --git a/libavcodec/vulkan_hevc.c b/libavcodec/vulkan_hevc.c index c2b65fc201..b109475194 100644 --- a/libavcodec/vulkan_hevc.c +++ b/libavcodec/vulkan_hevc.c @@ -359,7 +359,7 @@ static void set_sps(const HEVCSPS *sps, int sps_idx, .delta_rps_sign = sps->st_rps[i].delta_rps_sign, }, .delta_idx_minus1 = sps->st_rps[i].delta_idx - 1, - .use_delta_flag = sps->st_rps[i].use_delta_flag, + .use_delta_flag = sps->st_rps[i].use_delta, .abs_delta_rps_minus1 = sps->st_rps[i].abs_delta_rps - 1, .used_by_curr_pic_flag = 0x0, .used_by_curr_pic_s0_flag = 0x0,