From patchwork Thu Dec 10 11:16:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 24477 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 4205D44AF7C for ; Thu, 10 Dec 2020 13:18:59 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2ACE768A1F0; Thu, 10 Dec 2020 13:18:59 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f66.google.com (mail-wm1-f66.google.com [209.85.128.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E6445689A63 for ; Thu, 10 Dec 2020 13:18:50 +0200 (EET) Received: by mail-wm1-f66.google.com with SMTP id q75so4886925wme.2 for ; Thu, 10 Dec 2020 03:18:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=/Jc2JrzZlXWzXziOuJTiXOoSmT0j6UyS1k0c90SKvdg=; b=MIvtn0sIc4DpUdVDWMRSbJ5V1UxOMCu01SKf8jJchha5FB0oMI4Fi2Ns4kuwJT3E2N YI5fx3i77ACfgsNN8Sh1ntXaeXNDCKvZU0YVVw+WC+Xc/WZs6Q2qOwuaP5nBtHb79QSv 1El86QbAs7AK+ZOP1D3TKQxbggztqk11mZ1zJ/C4Gi3mAOGHC6Ip+cMO/cW93SKpTX5Q vfVzQdryMAW2Q0FdI2PzFb60ZuG7RBiizigsXoPciOnJii7JKCNG7vvoH+Q7ZoDGVElt rkk8P3rmOxiHx9C31WBSATotgnmo+1abkcsrpGwH6VDPQVOoz2DQXE6u4uqa52YaZ4wz FMiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=/Jc2JrzZlXWzXziOuJTiXOoSmT0j6UyS1k0c90SKvdg=; b=ZgS49cj5gKPnPzovqKeW0HOE54AvngzsOlu0/B9nCuRSYyRM/Z52a0uAxu38PRsaPQ OD+BK4mZCrhjNa5iR7YHuiB8MulLfMNuDbAeKzOSI9UoF9M378P8l292AxmoMGnyfDoB 1Wg0BTT44P7lzJBVLcTYYiiQb/YP43LsNxylDTOGMSq+VRI9kAF5YX6WEahBWMmWQMDn GJDF3Yj+tvYmZ1MlKDrj0iC7Tu8Ih2Vp11FJs0/9/ZfHa+Z8oeSqMw7zVN27g09UKs3z Hplxq+HEq7gvr1qWnMlsh3ggexO2F3b0FZAOOcpPs8roOM/hyJTMRbcUZnZBcCasJZKl IFGg== X-Gm-Message-State: AOAM531nXVABgyqk+hwGE3yMgynWPmXOJqTbNjXxMDqciLr5CeS7p/1E u0dn3c2p9TLyao5iYaVWNa3UqU5UxsjTtw== X-Google-Smtp-Source: ABdhPJwnRE8/0F8D/HUklaBAyDqUxrkP30Japuw28DpE5Lqp53kiibjBfujLwRXIjWQ8NshTMOlIzQ== X-Received: by 2002:a1c:f60b:: with SMTP id w11mr7742860wmc.180.1607599130155; Thu, 10 Dec 2020 03:18:50 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id s133sm8942330wmf.38.2020.12.10.03.18.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 10 Dec 2020 03:18:49 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Thu, 10 Dec 2020 12:16:23 +0100 Message-Id: <20201210111657.2276739-6-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201210111657.2276739-1-andreas.rheinhardt@gmail.com> References: <20201210111657.2276739-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/39] avcodec/mpeg12enc, speedhqenc: Avoid redundant copies of tables X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12enc.c | 12 ++---------- libavcodec/speedhqenc.c | 12 ++---------- 2 files changed, 4 insertions(+), 20 deletions(-) diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c index 05fd8c0e00..5cbcb15630 100644 --- a/libavcodec/mpeg12enc.c +++ b/libavcodec/mpeg12enc.c @@ -60,9 +60,6 @@ static uint8_t uni_mpeg2_ac_vlc_len[64 * 64 * 2]; static uint32_t mpeg1_lum_dc_uni[512]; static uint32_t mpeg1_chr_dc_uni[512]; -static uint8_t mpeg1_index_run[2][64]; -static int8_t mpeg1_max_level[2][64]; - #define A53_MAX_CC_COUNT 0x1f static av_cold void init_uni_ac_vlc(RLTable *rl, uint8_t *uni_ac_vlc_len) @@ -718,8 +715,8 @@ next_coef: MASK_ABS(sign, alevel); sign &= 1; - if (alevel <= mpeg1_max_level[0][run]) { - code = mpeg1_index_run[0][run] + alevel - 1; + if (alevel <= ff_rl_mpeg1.max_level[0][run]) { + code = ff_rl_mpeg1.index_run[0][run] + alevel - 1; /* store the VLC & sign at once */ put_bits(&s->pb, table_vlc[code][1] + 1, (table_vlc[code][0] << 1) + sign); @@ -1042,11 +1039,6 @@ static av_cold void mpeg12_encode_init_static(void) ff_rl_init(&ff_rl_mpeg1, mpeg12_static_rl_table_store[0]); ff_rl_init(&ff_rl_mpeg2, mpeg12_static_rl_table_store[1]); - for (int i = 0; i < 64; i++) { - mpeg1_max_level[0][i] = ff_rl_mpeg1.max_level[0][i]; - mpeg1_index_run[0][i] = ff_rl_mpeg1.index_run[0][i]; - } - init_uni_ac_vlc(&ff_rl_mpeg1, uni_mpeg1_ac_vlc_len); init_uni_ac_vlc(&ff_rl_mpeg2, uni_mpeg2_ac_vlc_len); diff --git a/libavcodec/speedhqenc.c b/libavcodec/speedhqenc.c index 3bda2a8453..9807024980 100644 --- a/libavcodec/speedhqenc.c +++ b/libavcodec/speedhqenc.c @@ -46,9 +46,6 @@ static uint16_t mpeg12_vlc_dc_chroma_code_reversed[12]; static uint32_t speedhq_lum_dc_uni[512]; static uint32_t speedhq_chr_dc_uni[512]; -static uint8_t speedhq_index_run[2][64]; -static int8_t speedhq_max_level[2][64]; - static uint8_t uni_speedhq_ac_vlc_len[64 * 64 * 2]; static uint32_t reverse(uint32_t num, int bits) @@ -77,11 +74,6 @@ static av_cold void speedhq_init_static_data(void) ff_rl_init(&ff_rl_speedhq, speedhq_static_rl_table_store); - for (int i = 0; i < 64; i++) { - speedhq_max_level[0][i] = ff_rl_speedhq.max_level[0][i]; - speedhq_index_run[0][i] = ff_rl_speedhq.index_run[0][i]; - } - /* build unified dc encoding tables */ for (int i = -255; i < 256; i++) { int adiff, index; @@ -231,8 +223,8 @@ static void encode_block(MpegEncContext *s, int16_t *block, int n) MASK_ABS(sign, alevel); sign &= 1; - if (alevel <= speedhq_max_level[0][run]) { - code = speedhq_index_run[0][run] + alevel - 1; + if (alevel <= ff_rl_speedhq.max_level[0][run]) { + code = ff_rl_speedhq.index_run[0][run] + alevel - 1; /* store the VLC & sign at once */ put_bits_le(&s->pb, ff_rl_speedhq.table_vlc[code][1] + 1, ff_rl_speedhq.table_vlc[code][0] + (sign << ff_rl_speedhq.table_vlc[code][1]));