From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 112B844701 for ; Wed, 21 Sep 2022 11:00:14 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BC49168BB96; Wed, 21 Sep 2022 14:00:11 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2038.outbound.protection.outlook.com [40.92.90.38]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2BFC668BB7A for ; Wed, 21 Sep 2022 14:00:05 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Q5xafDqYuEWUMMzdU3ZhDaMohE8yg4yf2QCtkdUD3Ke77F7967UJ+QeQE/W6BWOO7WjTYe+0SeA49pXIDYDlRG0892mbSS91knfeDg/XOaIkoyMDtovG76MLQm8HaIYGb7e51FNEo945Z6UPxVnljDAIaSgZSFwLEUY0mJLcOZlcNN1D5qVAFtkOM3pDZb39j4bmf+NJKrOWktdM0BRwANBP7JLfSj1uS2kDX9rZ38n4vE3Wh4Yr2LHGXuaLEvZaCbzgF0uNGNT2OW3NOUmICTe5Bt4M0fq20PGxt1UGQGsW1R/c9HykInmYAudDsz0Bp1dS8u1LlOK9kAZ2UuQAaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=KzjOFcOxXM7ygMAuP0enJr3jPVbN4EewkceCEszkPZI=; b=I3uj+qilDGi5FTwh3Hm3vo5OZBDs1Qqch4CN1fDwvHKYt7wwsFIQ/o400QMhy0069QDTtVFDr/np8kJdvRxJuZTcry2nb4NnINxhR+aj7O+rCiTJlsW6XYyAu+0V2u6paQedr2nALmC0Ph6E0RwvT5iDP8ZKWAvC59vKYaBSCVDIflqQ/SdCobjAQBto/I1mX8H6bilrsOvf29C0rsl3J44hEN6Hna3D5O1q9rRL3onBbL1eZXTExsiFRQHET/LShd9+0TAs5dYoaymcDNkcpi/AIjs1P0YD7+zlYNHNHb+8k2D/QpC02wGjYkUl9iycI1atEtzPhPzG0GL2pGV2bQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KzjOFcOxXM7ygMAuP0enJr3jPVbN4EewkceCEszkPZI=; b=KVcnzI3eITVvWrBZfBdW/rFQ3l2yAzREijBXHOgfZvKAPLTIO2H7h4i+DIyn95XnnAZiYn7aUYqTAJlCpQvlfL248WgGtGvh7xd/VNK/ALaOz5gFzGK1rM/OmSnlvu2rynrug6PMzASR6p2b6Lr6Z9Ok11/sTGNxfbCVqn56v+xmPm8OD3kCrOFKU0Kv7m7gHQZWhHK+bC3oSOZuwlkUXzrUNEUSm8oUrld9pdk5MdR2qVV7XrQKPXERmgBKL1c+CCa6M1oomUFpPvPNeDe2u4yme/ZwmNlZtJg9910UNnS7R20Ij+l74wj+6io1Tmz8eox5X5Xa8sYKohY6W959nw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU0P250MB0866.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3e9::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5654.16; Wed, 21 Sep 2022 11:00:03 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::f3f2:4362:56:4785%8]) with mapi id 15.20.5632.019; Wed, 21 Sep 2022 11:00:03 +0000 Message-ID: Date: Wed, 21 Sep 2022 13:00:07 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20220921091954.GC6583@pb2> From: Andreas Rheinhardt In-Reply-To: <20220921091954.GC6583@pb2> X-TMN: [jOvPnqRYtHAb0IBE3yV0WFDDOOtvgNqw1XEoFV9+OI0=] X-ClientProxiedBy: ZR0P278CA0068.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:21::19) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <7368e575-45a3-9a5a-b13d-c0bb5de32aca@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU0P250MB0866:EE_ X-MS-Office365-Filtering-Correlation-Id: 52f267e5-386a-4946-5719-08da9bc06f63 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: dHeXG1DEAoVsnSIB73wKALt0XeIuON1xstp/2E5JnMY8ox36It4t3jJGHZlz9KnakcMDi6vSZXTBNBDVGCDOv785u9QCUgpA5pyUNFoNZcNlp/koJpbhVLf0mEg8r91DsQ3faktdmIKyZDKOebjqkVnaZQV+NDjDuM0uqAy5Q3nmJOOaRB8J3cYpiJcHOae0yxfb+fEVES/ZkEPd/OCINUtQ0/8NgXrxMZZPDRPeNxxVGBG/cjljCJG35M+MMT7uehGiNr5S7Yo7shnZhvCUnVmQsqUAiFvCr6ZJ0SYbYnqTVvGU6kWHz2suvCvVy1nkrJT9zHKM5u6bbqvNN2FBZdZPek/wW3k5COtBMmK/F8jzV1Yqjn6p3PPERI2e+vw7S928yXa+rqrST8d8HRqFrkyMvc1dzC59dy8GXwbYxzzXx1y3WQRPcIHvO9RYaeuvJGUwzh3YKtUPKpjD5Gnf4zbLxnDrmyK9V9d3zAvkQEP4VaJsGBLS1Z6pi2UrfWDo/RXwpVukNrB0yr/WldG1SRYmnpsWgmL7s4qOFRJUTyu2dNcXyp/eqGXg9LjJNgMhoBMpqYypn3QXgq42HFYsYo5bkISqK+kMWYwQaPdM0TbIrJNbDGolVVJC+z+YUgsRF7FunW23859ENv5tSDxaUH6/XJLwoNat6ZxJeq+Qv7HuAT6ztsnTAvRAHexWztFN X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VDgwQm0yU1BGVmN5VHo2NjVwd2tVb1pDcUFyclpodG80SklvK3hLNDloOWlG?= =?utf-8?B?V2xxbEJ1M0hzdk0xYm5UcVFaK1RWTVRQeDYwNS9HM1VaVWZoV1IvNmswcWVF?= =?utf-8?B?RnpibXMyZzk3WGdrVHJnL0pNTVZBWnZDU1lGdDNRcjFBV1pSTHNNVCtmb1Bv?= =?utf-8?B?RTIzV3pid0ppTFJNT2J1NG03TzJidDhlTlVrYS96NjJhS0dUeGI2VEZPSW13?= =?utf-8?B?TnRTM3ova09PbFpWRzZka3pzelR3ZE5qOXJqdnlsYlN5ZFNMV2MwU2xKak45?= =?utf-8?B?ZnZvbXNhdjl2OExVckxMLzUwR095bTZuMmV0S1FaUks0TDl3R1JqMU1CN2hJ?= =?utf-8?B?NFpUWGZyM29EY3NSa2I4MWUvaXpRQWFQUEpjNnB2LytXQ01kei9KSnRNTWx1?= =?utf-8?B?TVNtOVdaR29qams4eDhKTHljdXQzRnRjNGg0VjI2S2ZRMGg5VUJFc0xLc3dp?= =?utf-8?B?NWlKc1BWN3BDTVBTM1l3UjRZZWtkOTlTbGdNMmpsK0pibGFDbkk5eW9xcjZu?= =?utf-8?B?SEdZVi96MG5UNlRyTi9HWFdXbEpLWEN0Qml3MGdRRVVNbXRraUpHSXJ0V0dt?= =?utf-8?B?bG5CVkQrL2Y0UXZwcm9CZkh1cE9tUjA3dkVmU1hOMFN3RTNNbGZaTkRGWmhh?= =?utf-8?B?aFFibzZYRG50RHVpSW8zQVI2d2k1ZFE2MUFpSHJ2NVluQms1WWRUdHRvS3ZK?= =?utf-8?B?YWZ1em1TTGp1L2RDd0NpYnNFNnJhbjRXMHIzOFF3RzNydkQzQjVHNDFOMzky?= =?utf-8?B?ek4reVE0bmsyR04zMkE0TjhHL2lMbHlWdGEzNG16Q2hjLzdBT2VQa1ZJN2V2?= =?utf-8?B?aVBwcEwwNjBqMm9PZjRkaG9oZ3F6QlFMOEFtemQ2cjdPbUFGVHdjKzlUaXBm?= =?utf-8?B?N1RmRkg3MnRBY0dGVUdCa2VwZExnNzBodk9BdjhGSXFSV0JjR2lKOTJZYWFi?= =?utf-8?B?Y1dKdEgwekNyMmo4S1VFR0F5UEsvV0o5V3NZNUZxNTk0cmZtQU43ZUd4cEF5?= =?utf-8?B?ZTZWUkZYTTNOOXpFSlZEU1F4WFQwVDczNEVTNktZV0dqSjdNZE9FcnRVT1Ux?= =?utf-8?B?Y1prRG9pVVRCTW1BWnhmajY3aURKbERRejZqZTFlSGVFVEF2djlLbndEOUtZ?= =?utf-8?B?M1JBVmt1QldvYys1S3k3TGR1YlJHb0dvNGpReGJkTDEyeDVadU9GN3d4VSs1?= =?utf-8?B?YUZ3WXE0YlN3MnRSVCtuMVE3dUJpdFhKOXpvVzVrTGdBbDRjb2NWOWM2dU5K?= =?utf-8?B?ZXczL2x3UEoxRWd3ekNXN2RWTHVkUFE4YlJLeXNNdzdUcXQ2dHJWaVdMZE11?= =?utf-8?B?RE1nNnFPS2NtbHpzWEpMS2lVS09DWlQrV1FvVjkzY05ISlpCTXZYMmh6MUxT?= =?utf-8?B?OGg1dnpJVEcxTkRpWElDWklWYnN2dlNYZExHRnF6M2orUUlIaGE0ayszejlE?= =?utf-8?B?K0k1NWZEeFFlTThhVHhRRTQvWHVpSXVONzJZdWVGTU9uT3Y5SGtrY0tFWGFn?= =?utf-8?B?MnhnVGVRV3J0Y0pycW5GTnVVZk95S2ZIUWhMOEc0aGFQeEU1WkgyVzFLbTBh?= =?utf-8?B?Y0RmSHhNSWl1T2QzOHF6WmlzVStQS1dJekVtODA1NDNYZzg4YnNFY1JMOHdT?= =?utf-8?B?TldvSGoxTzdlRGt4d2w5K1IwbHFxK3pISU9jM2tkalhLdld0VW1nT0lPdURT?= =?utf-8?B?aERMUDlmRVRscC9Qc0xrTGw1RURBOVZwNmVNM1lHRHBQbXpyUklYaS9TN20v?= =?utf-8?Q?Bbc6KG5LVINkNjO9PfBpirqiHqV4VHod3wE32aq?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52f267e5-386a-4946-5719-08da9bc06f63 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Sep 2022 11:00:03.3028 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU0P250MB0866 Subject: Re: [FFmpeg-devel] [PATCH 1/4] avcodec/snow: Move ff_snow_inner_add_yblock() to snow_dwt.c 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Michael Niedermayer: > On Mon, Sep 19, 2022 at 11:27:49PM +0200, Andreas Rheinhardt wrote: >> Only used there and by x86 snow asm code as fallback. >> >> Signed-off-by: Andreas Rheinhardt >> --- >> libavcodec/snow.c | 33 --------------------------------- >> libavcodec/snow.h | 3 --- >> libavcodec/snow_dwt.c | 32 ++++++++++++++++++++++++++++++++ >> libavcodec/snow_dwt.h | 3 +++ >> 4 files changed, 35 insertions(+), 36 deletions(-) >> >> diff --git a/libavcodec/snow.c b/libavcodec/snow.c >> index aa15fccc42..85ad6d10a1 100644 >> --- a/libavcodec/snow.c >> +++ b/libavcodec/snow.c >> @@ -29,39 +29,6 @@ >> #include "snowdata.h" >> >> >> -void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, uint8_t * * block, int b_w, int b_h, >> - int src_x, int src_y, int src_stride, slice_buffer * sb, int add, uint8_t * dst8){ >> - int y, x; >> - IDWTELEM * dst; >> - for(y=0; y> - //FIXME ugly misuse of obmc_stride >> - const uint8_t *obmc1= obmc + y*obmc_stride; >> - const uint8_t *obmc2= obmc1+ (obmc_stride>>1); >> - const uint8_t *obmc3= obmc1+ obmc_stride*(obmc_stride>>1); >> - const uint8_t *obmc4= obmc3+ (obmc_stride>>1); >> - dst = slice_buffer_get_line(sb, src_y + y); >> - for(x=0; x> - int v= obmc1[x] * block[3][x + y*src_stride] >> - +obmc2[x] * block[2][x + y*src_stride] >> - +obmc3[x] * block[1][x + y*src_stride] >> - +obmc4[x] * block[0][x + y*src_stride]; >> - >> - v <<= 8 - LOG2_OBMC_MAX; >> - if(FRAC_BITS != 8){ >> - v >>= 8 - FRAC_BITS; >> - } >> - if(add){ >> - v += dst[x + src_x]; >> - v = (v + (1<<(FRAC_BITS-1))) >> FRAC_BITS; >> - if(v&(~255)) v= ~(v>>31); >> - dst8[x + y*src_stride] = v; >> - }else{ >> - dst[x + src_x] -= v; >> - } >> - } >> - } >> -} >> - >> int ff_snow_get_buffer(SnowContext *s, AVFrame *frame) >> { >> int ret, i; >> diff --git a/libavcodec/snow.h b/libavcodec/snow.h >> index ed0f9abb42..1c976b9ba7 100644 >> --- a/libavcodec/snow.h >> +++ b/libavcodec/snow.h >> @@ -45,11 +45,8 @@ >> #define QSHIFT 5 >> #define QROOT (1<> #define LOSSLESS_QLOG -128 >> -#define FRAC_BITS 4 >> #define MAX_REF_FRAMES 8 >> >> -#define LOG2_OBMC_MAX 8 >> -#define OBMC_MAX (1<<(LOG2_OBMC_MAX)) >> typedef struct BlockNode{ >> int16_t mx; ///< Motion vector component X, see mv_scale >> int16_t my; ///< Motion vector component Y, see mv_scale >> diff --git a/libavcodec/snow_dwt.c b/libavcodec/snow_dwt.c >> index 18b315ef66..9401d119d0 100644 >> --- a/libavcodec/snow_dwt.c >> +++ b/libavcodec/snow_dwt.c >> @@ -25,6 +25,38 @@ >> #include "me_cmp.h" >> #include "snow_dwt.h" >> >> +void ff_snow_inner_add_yblock(const uint8_t *obmc, const int obmc_stride, >> + uint8_t **block, int b_w, int b_h, >> + int src_x, int src_y, int src_stride, >> + slice_buffer * sb, int add, uint8_t * dst8) >> +{ >> + for (int y = 0; y < b_h; y++) { >> + //FIXME ugly misuse of obmc_stride >> + const uint8_t *obmc1 = obmc + y * obmc_stride; >> + const uint8_t *obmc2 = obmc1 + (obmc_stride >> 1); >> + const uint8_t *obmc3 = obmc1 + obmc_stride * (obmc_stride >> 1); >> + const uint8_t *obmc4 = obmc3 + (obmc_stride >> 1); >> + IDWTELEM *dst = slice_buffer_get_line(sb, src_y + y); >> + for (int x = 0; x < b_w; x++) { >> + int v = obmc1[x] * block[3][x + y*src_stride] >> + + obmc2[x] * block[2][x + y*src_stride] >> + + obmc3[x] * block[1][x + y*src_stride] >> + + obmc4[x] * block[0][x + y*src_stride]; >> + >> + v <<= 8 - LOG2_OBMC_MAX; >> + if (FRAC_BITS != 8) >> + v >>= 8 - FRAC_BITS; >> + if (add) { >> + v += dst[x + src_x]; >> + v = (v + (1 << (FRAC_BITS - 1))) >> FRAC_BITS; >> + if (v & (~255)) v= ~(v>>31); >> + dst8[x + y*src_stride] = v; >> + } else >> + dst[x + src_x] -= v; >> + } >> + } >> +} >> + > > putting this in snow_dwt may be convenient but it is not part of the dwt so > this feels semantically wrong > If it is not part of the dwt, then why does SnowDWTContext have an inner_add_yblock function pointer whose C version is ff_snow_inner_add_yblock? - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".