From patchwork Fri Nov 20 07:19:07 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 23785 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 1316544AF11 for ; Fri, 20 Nov 2020 09:30:31 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1357868BA85; Fri, 20 Nov 2020 09:24:56 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5076D68BA5F for ; Fri, 20 Nov 2020 09:24:45 +0200 (EET) Received: by mail-ed1-f67.google.com with SMTP id q16so8460087edv.10 for ; Thu, 19 Nov 2020 23:24:45 -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=4AmEe6B/QE4lfl6Oz6JAU3ipfHRxnyv2Dy7a7cjxjhM=; b=KijITyR7gyiLaJcXn0+oTD2k1yqfW8EvzM05YkX6K2i2IDKJrKcdy47xqngt9zKAFV jpri5EPQSlaWrs3Q+lWDXyzhNFFVD9y60pd/vxUWJ6pE9KV2+7Jj6xZv/L4zv8Fwco6w Pgo6DoGUZ2ffkKSYnkbsrlWy5Odq32jagl3UmqoaXGCL0Q/3sfHoYhlqkbGmeY3EddwX MYhg2D+5vhcPp4wyfD9lOWanvc5uWY1XbLGD9+MxMZJFxrrqWz3qGzRXYrZ/apyrf995 g5X9oQ8ylBUe/qv9mWNl4dLBgljjBNauFf1m9UFZjO1QKxO+8+oNaNnEsBrJI34ZHHA+ Qw3Q== 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=4AmEe6B/QE4lfl6Oz6JAU3ipfHRxnyv2Dy7a7cjxjhM=; b=kfBIBFZJxKynGf4uh/jwn0bjzdIuE50dbC+4UNDql2geEHZTA2TlNOR3FvWgIFFHWC 6V321oyhwLblrNxWYfBVQz6kiSvxh0TlkHJDW+pCfvBOElvHyRy+yrr/7ZWh2gK9xQ4e YKtdqZnOhMEx3MEQHl+i3WGU6AcbSmwKgGiaq+cdJHqIFg2v1lqFSMAuoHapXNH7GUPF Ty5D6MDNAlZXWOpkWtgdPw9DMZ5C1RHT6OQvy96hZhzl/OsHZY6D8VFS5WAdYiONYZVX 6zX0XmHfe648tCvWOQ7n5Xgb1eU2Hi0Ya42a6Sd4jEh18aH2d+b/N0UK8r8s9CLXdM/a vDlw== X-Gm-Message-State: AOAM5330N1Gg+zrANfkFUy8qHaG/bSwjwPh1w25/sl43v83Cz1IjHsGw Xlw9UKtiQzZe0AXLhlLpYbdGSwxT4v9lZw== X-Google-Smtp-Source: ABdhPJwbKxVVKA6N4ps/XIjAZ46E8X+bCaXuREhr2pZA22kW4iHP2fWRXm9Nh2PN0rRp9WeHcnuuqw== X-Received: by 2002:a50:eb96:: with SMTP id y22mr35054864edr.116.1605857084613; Thu, 19 Nov 2020 23:24:44 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id lz27sm779419ejb.39.2020.11.19.23.24.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Nov 2020 23:24:44 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Nov 2020 08:19:07 +0100 Message-Id: <20201120072116.818090-35-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201120072116.818090-1-andreas.rheinhardt@gmail.com> References: <20201120072116.818090-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 034/162] avcodec/rv10: Make VLC tables smaller 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" These tables were huge (14 bits) because one needed 14 bits in order to find out whether a code is valid and in the VLC table or a valid code that required hacky workarounds due to RealVideo 1.0 using multiple codes for the same symbol and the code predating the introduction of symbols tables for VLCs. Signed-off-by: Andreas Rheinhardt --- libavcodec/rv10.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libavcodec/rv10.c b/libavcodec/rv10.c index 4d4c2b0f2e..0727899337 100644 --- a/libavcodec/rv10.c +++ b/libavcodec/rv10.c @@ -47,7 +47,7 @@ #define RV_GET_MICRO_VER(x) (((x) >> 12) & 0xFF) #define MAX_VLC_ENTRIES 1023 // Note: Does not include the skip entries. -#define DC_VLC_BITS 14 // FIXME find a better solution +#define DC_VLC_BITS 9 typedef struct RVDecContext { MpegEncContext m; @@ -346,14 +346,14 @@ static av_cold void rv10_build_vlc(VLC *vlc, const uint16_t len_count[15], static av_cold void rv10_init_static(void) { - static VLC_TYPE table[16896 + 16640][2]; + static VLC_TYPE table[1472 + 992][2]; rv_dc_lum.table = table; - rv_dc_lum.table_allocated = 16896; + rv_dc_lum.table_allocated = 1472; rv10_build_vlc(&rv_dc_lum, rv_lum_len_count, rv_sym_run_len, FF_ARRAY_ELEMS(rv_sym_run_len)); - rv_dc_chrom.table = &table[16896]; - rv_dc_chrom.table_allocated = 16640; + rv_dc_chrom.table = &table[1472]; + rv_dc_chrom.table_allocated = 992; rv10_build_vlc(&rv_dc_chrom, rv_chrom_len_count, rv_sym_run_len, FF_ARRAY_ELEMS(rv_sym_run_len) - 2); ff_h263_decode_init_vlc();