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 A2D904990C for ; Fri, 23 Feb 2024 07:14:31 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DDAAE68C5DA; Fri, 23 Feb 2024 09:14:29 +0200 (EET) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8FF6268AE39 for ; Fri, 23 Feb 2024 09:14:22 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1708672467; x=1740208467; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=MMfdggigysPIbwXGiiV2Vh4VtDij84q2Bf/7EFj5kZE=; b=JCiy2+pglvA9NGCpjzHHMOZiuuVd8cibk0kdprml6Z454sBwXtqLR2BU HskHAvjwUZ/Tl4g7/or6SsX4fVETiytYa8W+2upiJ5W6/L2S/YZcZB56U 5meH9SdEZ6jQbOfhx5QdI+2O9BAq2uFnMgb5KiZwFkg3redaLYfm/Tbn/ hJ74uhbGbZGzqDuc21delkoPU2qQSe9cwg2bGMKQxr5j25JPjEgwR9Gfi 0Gir7xKo7Jt3eQQ04Tuz1Kog23N04HNK91o2V0vL/UZTB4rfg6JPB75Jv Jj7r7Pmm6nyinEs5ZPilwDs00cywvf2W8ol7GRsOYRT7ewzpDv/RnRIFF w==; X-IronPort-AV: E=McAfee;i="6600,9927,10992"; a="5916367" X-IronPort-AV: E=Sophos;i="6.06,179,1705392000"; d="scan'208";a="5916367" Received: from fmviesa001.fm.intel.com ([10.60.135.141]) by fmvoesa107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 22 Feb 2024 23:14:20 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,179,1705392000"; d="scan'208";a="36833363" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by fmviesa001.fm.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 22 Feb 2024 23:14:20 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 22 Feb 2024 23:14:19 -0800 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX612.amr.corp.intel.com (10.22.229.25) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 22 Feb 2024 23:14:19 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35 via Frontend Transport; Thu, 22 Feb 2024 23:14:19 -0800 Received: from NAM04-DM6-obe.outbound.protection.outlook.com (104.47.73.41) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.35; Thu, 22 Feb 2024 23:14:19 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G7YvsFgLgHfwAikg9gYfkE+xBVXCp9UzBBk1JNOAaPXxCTn52eBu6x5kqXeZnaQs1cmQ6qTIJeoT9r0WGiF4Yd9m1qd/RjuZmQpypCayh4b147WevaANsRz4TV23vMJxH2rljKijPLYUfxJtStOGBEpFtvVtpgKIi+htkBjL9epuc3iYPpcIoHkAu6VzFDv8XycJfpWfEOY5g/0VgTfkJygSXLvWj9liFRZk2zwkSpR0FbbQbpbJc0eEtXBh/ds3bJMY3yZfo+lfFtZ2+f+cEQOxdPrgnFUquEq2VSX+UsJFsDJlZuSy4OUYytWQivO/RKdqGClP4CwfFdHIrWTWCQ== 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=MMfdggigysPIbwXGiiV2Vh4VtDij84q2Bf/7EFj5kZE=; b=hKja4E+XbRiAuMxL4mLN070U/dCdDsa6BiQ6Rg8SRHvjwxo+2EzTnqs3nGsY8LbzAct6mNP7PadzWRMKblwouHFGD22X8b0sezZ/uEs5vZhwgelvzsY0v//DQOtEzoBpFQtatRH7cH7jomB7DHtETMGQ3DUQBuOtLXWis4BLrSLWirXM9iEZqStB7McSyOfoIbkewqbIiieqR6oW99n9mYJiWhkPacuzI47AxWxOn4sIwBG0BURC7srgmxUCYaOPZ/v9Jbo/0sjEoXPbAusBWn5cgkC+zj02KbJI6oNAFW41CD51DbFaFaI25+8hufwn/fm3yz+Zg9LtEeszq05afA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5030.namprd11.prod.outlook.com (2603:10b6:510:41::5) by BL1PR11MB5445.namprd11.prod.outlook.com (2603:10b6:208:30b::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7292.39; Fri, 23 Feb 2024 07:14:17 +0000 Received: from PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::aeeb:56ba:7ba3:88e8]) by PH0PR11MB5030.namprd11.prod.outlook.com ([fe80::aeeb:56ba:7ba3:88e8%6]) with mapi id 15.20.7292.036; Fri, 23 Feb 2024 07:14:17 +0000 From: "Wang, Fei W" To: "ffmpeg-devel@ffmpeg.org" , "Xiang, Haihao" Thread-Topic: [FFmpeg-devel] [PATCH v1] lavc/vaapi_encode: Enable Macroblock based bitrate control Thread-Index: AQHaZhbGdeh/Tj7sV0uSHRLEZ513bLEXhA0A Date: Fri, 23 Feb 2024 07:14:16 +0000 Message-ID: <31ea3fd25a48ad22cb555d96ca7a2f80b43834de.camel@intel.com> References: <20240207004045.3242406-1-fei.w.wang@intel.com> <334a0262d1b52b75879c7e6a349d209393aa44ec.camel@intel.com> In-Reply-To: <334a0262d1b52b75879c7e6a349d209393aa44ec.camel@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5030:EE_|BL1PR11MB5445:EE_ x-ms-office365-filtering-correlation-id: 1ec8dc24-5011-41b4-87c6-08dc343f0c17 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: kbA82SxCVD1irJ6SFIXMFhaMokqXEXmXY7d4JMrwFgTI80V+xjuQHEiqUCFDPAa0WCbANi6Qr2vAD6oJxLc5ooAVAFxgNfLyXULtl/dl3pepiVyT5A3lxoErbYMcT+qRNdLI9ZwqFqeR784qp+IUmj1goBhVJmivr7vd3PrZg42bNy8UTIXHirdYpSP6zlx7jXg27zpoR/FD1r166PKvNMmYBs359AfmDBeFm6BYUYFvJuXsaBjg/c+txA8HoPHFFXlvnt3+S/oDYpL7xTsytXC+jzvdYxNbUIfJOpl6vE0F39Q1KcWi5G+0roR11PPtp8Hom9NolVkr88wawkd4xZFBzNNA2SvXoi51StdX5hIhWj+M/RbLSBpDzJxY+AkvxJGPy+hxvSS7Ta/2SNzzX/Su0l5ECY8zL83Rx1LyHNMoOd4SbamnYC18dtbgCPvGrbMJaMJU3oWihK+DI/H5jU25ReNftp1pegOPpyNMN4jWu6WJcT8X4G0R5gDvzP9W9aUfYOB8IToH3QEbq/L8if1wcRAJ1VKM54uSfQ9+lYtyPwyOSNMEsDAh5qwP+8ykGSEpZlgJsU9GgXR7MXzDBZat3AlnJPvSPKTAP+8OJts66udcZLem3fFV2jxU3XWp x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR11MB5030.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(38070700009); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?NGpQcmRGREFTQ3dFNzFTakxkbVZnZmZib2l4NERKRGxNd01pRjRHK1puNDlH?= =?utf-8?B?OUY5TVVrTmRHU3RhQlpidGgxRy9YVG1lWk0rVEtnQkhqbWlmYjEveFh3aFBq?= =?utf-8?B?UXZ0R3owVUYzS00xVHhDeW5JQTN1WVA5clJLbWs1ZGw5U1o2bVNIZVRlUVBl?= =?utf-8?B?eFJFcDZzdGYyUkNmdWxkSTFZYUsvdWxjRU9kelhCRHBQclJqMGNJRnREZFpv?= =?utf-8?B?Tml6MlJHQXlBRHF0b3FxUnVZdjg4by9DTGhSd2w5cHZNNzFkL2FVNjVjMnpm?= =?utf-8?B?OW94WmNJK01Fdlp1bzhLMmYwKzVLTVhHbHQ5eTNBeHZVQkUzVytvR01EMzA1?= =?utf-8?B?Q2xUMWthN0kzZW84bEJWSmlseDFlZklvOG5ia0tqbEt2UG56bjNkcmJuU2tn?= =?utf-8?B?MHY1L3RHcEpSRlNYc3J4LzlwS01IalRGcjJFb2VhSFB2UXpTbFFiMXRSeCt3?= =?utf-8?B?a2I0NDdXc3ZJcVA4WlhHSmNmbkhzVlYyZzRQb1ZHRDRtWllTQnVDaUtkOXM2?= =?utf-8?B?RmVwRmhNcjNzN25SL0JwNGVlZDRnNTdLNTVzck1sUHFhM3dBZG05Y1laZGtG?= =?utf-8?B?Zm53T1JSaFo3a1JjY3VGNXJrRGQwUzlSVHQvNWxqTDVXUlFScDBPL29aRGVn?= =?utf-8?B?Q3QrK2tsM0pTcGJwejNjdGZKS1RGZ3k3OThlaUZud2RtWGpnSlA3U0s1d3ZK?= =?utf-8?B?Q09FQVhnR3NrMzBodHduTGtuZDdPUURRT0xUcnBNblBLcytSdjhNMnoyV0tR?= =?utf-8?B?djJvZVpMZmNUTzBGMmlCeXcxVHp0TlhUdTRqaVJYL1hFbm1CVUcyVndNNW5Z?= =?utf-8?B?VEN2N29HaG9WUXhJR0lmN05IcUFpMzJIVnB1bjdoWWZ3ZUwvT01abFc2Zk51?= =?utf-8?B?M2lCTTJBb01zV2FwSUJoNEUxT05CdC9rdW03N0kvblN2dExzT2wzZGZXY0dM?= =?utf-8?B?bGlPbGxHWkZ5R2M3SEJoQWhHdE9xTkgwRVVFUXlIa3NvYU13V2pQMXRheW93?= =?utf-8?B?b044a2lGVmJiSXZFbDB5aHNaOVlNVjNvMm9XTFNTK3d1dmY0c0lmV2pVMnNp?= =?utf-8?B?TzZGdlVBZ0ZGTGVmeFVjcGJCVndRMVlwb0JVUWJxWGhWNWN0empJM2tOUmV3?= =?utf-8?B?OENwZXNxSkxhTkxyclR2WmFieHRLdUJqR2JMVC9oSWZpZkxMcDVIRldUNzYv?= =?utf-8?B?cGtmQVlTTWUxQkRpZk1GejRQRldCUk5oM05CTytTd09lVU9UdWpDNGFJLytF?= =?utf-8?B?RUhhb25BaFQ4MTFWd0dxbVRWdzhPeElnVEY2c0dYRHNaSXlqVDNYeitVQ2dC?= =?utf-8?B?R2lCNGZzTlVOUjRoMGxvRWNNK1duMWdHMEwvdWlEbVYyMlBOcndHZ2FCTXk2?= =?utf-8?B?WEFscFIrRWU2ZmxvQnF1YzZ3RzU2ek5ZaHVGTUc2M3YyeWtocEp5VENxU3lo?= =?utf-8?B?QlB1QU8yU0VER1F0M1VqV1I3NFQ3VTY1eVlZUGRNR3VZMTdieUZiVi9NNWda?= =?utf-8?B?N1h5bFM3MkpIUitxTG5qYVNkaGRuVmJSdGZXRkw5WjVnaEhBbExya0pSNTc1?= =?utf-8?B?ZzdUeStwSXV2am9VYjFPTnJYaFQ3czFpcVVDaXJMcS9OREVVRk9HWWJwKzRp?= =?utf-8?B?RVNEM0FGSHE4bHVmMVVKNmVCT1NvS3lLWTh2MWVIeS9zRERWUGx4cTdGSWlG?= =?utf-8?B?bHBvcTgxMDFobHdqN1hpZ0ZFU3JiOWJjaXhhY29LUVk3R1FUWTJ1Wlk0RVly?= =?utf-8?B?UjRtcnpKdi9SZmZtc2swV1FuZFFEWXVRQTZYcWszNjEzZ3FqcnNKT3VkUjhq?= =?utf-8?B?eGMxSFRTYXRPWkVyQ3M2cGtaNUhNWmEvY2gxQm5wcmpiRXNkMEJ1SmQ4SXA4?= =?utf-8?B?enBCWWtLVjVHOXJXNnArMXgyMDJodDI3K21YUERCWXVsVXduQWhEalp6MTAw?= =?utf-8?B?dUQ2NHpzRzFrTHVqQm1vZW91Y0MvRTdZOFJsVW9Fdm9hc1FaUkkzc0V5eGU3?= =?utf-8?B?cnptN0RGYjczRk5TcmFESVo0RG5TeEsxRjNWMWxFYUQ5NlUzdm40bU13RHRY?= =?utf-8?B?VmJ1Y01Id0N4SWlCRjRPZ0syUmtWZnYwSS8vQ2ZURmZIZk43VlNGMnJCL3M2?= =?utf-8?B?QjVJRHQ4L3QxTU15QzB0OUZPUlJHR2xOQzJXcWRQYkZ3L1VOVEg5dWlIc3Jt?= =?utf-8?B?Vnc9PQ==?= Content-ID: <47669C5F2FEB69448FB8AE4BB1ACB3E4@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5030.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1ec8dc24-5011-41b4-87c6-08dc343f0c17 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Feb 2024 07:14:16.9591 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ZcZiBzgelQqvwm8xBBFurL9XyWAnjpWOOs9vxH4GAKQDsza7D2yDeS6m03+JUjhJQC5muZjM3nFZEPhxt5c0Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5445 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v1] lavc/vaapi_encode: Enable Macroblock based bitrate control 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: On Fri, 2024-02-23 at 05:11 +0000, Xiang, Haihao wrote: > On Wo, 2024-02-07 at 08:40 +0800, fei.w.wang-at-intel.com@ffmpeg.org > wrote: > > From: Fei Wang > > > > Signed-off-by: Fei Wang > > --- > > doc/encoders.texi | 3 +++ > > libavcodec/vaapi_encode.c | 11 ++++++++++- > > libavcodec/vaapi_encode.h | 9 ++++++++- > > 3 files changed, 21 insertions(+), 2 deletions(-) > > > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > index c9fe6d6143..b66d5da31f 100644 > > --- a/doc/encoders.texi > > +++ b/doc/encoders.texi > > @@ -4080,6 +4080,9 @@ Quality-defined variable-bitrate. > > Average variable bitrate. > > @end table > > > > +@item mbbrc > > +Enable Macroblock based rate control. Invalid for CQP mode. > > + > > @end table > > > > Each encoder also has its own specific options: > > diff --git a/libavcodec/vaapi_encode.c b/libavcodec/vaapi_encode.c > > index 86f4110cd2..83eb881428 100644 > > --- a/libavcodec/vaapi_encode.c > > +++ b/libavcodec/vaapi_encode.c > > @@ -1806,6 +1806,9 @@ static av_cold int > > vaapi_encode_init_rate_control(AVCodecContext *avctx) > > int i, first = 1, res; > > > > supported_va_rc_modes = rc_attr.value; > > + if (ctx->mbbrc && !(supported_va_rc_modes & VA_RC_MB)) > > + ctx->mbbrc = 0; > > + > > for (i = 0; i < FF_ARRAY_ELEMS(vaapi_encode_rc_modes); > > i++) { > > rc_mode = &vaapi_encode_rc_modes[i]; > > if (supported_va_rc_modes & rc_mode->va_mode) { > > @@ -2017,13 +2020,18 @@ rc_mode_found: > > ctx->va_bit_rate = rc_bits_per_second; > > > > av_log(avctx, AV_LOG_VERBOSE, "RC mode: %s.\n", rc_mode- > > >name); > > + > > + if (ctx->mbbrc && ctx->va_rc_mode == VA_RC_CQP) > > + ctx->mbbrc = 0; > > + av_log(avctx, AV_LOG_VERBOSE, "MB bitrate control: %d.\n", > > ctx->mbbrc); > > Better to use a string representation of the boolean value, E.g. > on/off, or > enabled/disabled. Fixed in V2. Thanks Fei > > Thanks > Haihao > > > + > > if (rc_attr.value == VA_ATTRIB_NOT_SUPPORTED) { > > // This driver does not want the RC mode attribute to be > > set. > > } else { > > ctx->config_attributes[ctx->nb_config_attributes++] = > > (VAConfigAttrib) { > > .type = VAConfigAttribRateControl, > > - .value = ctx->va_rc_mode, > > + .value = ctx->mbbrc ? ctx->va_rc_mode | VA_RC_MB : > > ctx- > > > va_rc_mode, > > }; > > } > > > > @@ -2052,6 +2060,7 @@ rc_mode_found: > > #if VA_CHECK_VERSION(1, 1, 0) > > .ICQ_quality_factor = av_clip(rc_quality, 1, 51), > > .max_qp = (avctx->qmax > 0 ? avctx->qmax : > > 0), > > + .rc_flags.bits.mb_rate_control = ctx->mbbrc ? 1 : 2, > > #endif > > #if VA_CHECK_VERSION(1, 3, 0) > > .quality_factor = rc_quality, > > diff --git a/libavcodec/vaapi_encode.h b/libavcodec/vaapi_encode.h > > index d5d6d5eb1b..f2abfed459 100644 > > --- a/libavcodec/vaapi_encode.h > > +++ b/libavcodec/vaapi_encode.h > > @@ -216,6 +216,9 @@ typedef struct VAAPIEncodeContext { > > // available modes). > > int explicit_rc_mode; > > > > + // Macroblock based rate control. > > + int mbbrc; > > + > > // Explicitly-set QP, for use with the "qp" options. > > // (Forces CQP mode when set, overriding everything else.) > > int explicit_qp; > > @@ -538,7 +541,11 @@ int ff_vaapi_encode_close(AVCodecContext > > *avctx); > > VAAPI_ENCODE_RC_MODE(VBR, "Variable-bitrate"), \ > > VAAPI_ENCODE_RC_MODE(ICQ, "Intelligent constant-quality"), \ > > VAAPI_ENCODE_RC_MODE(QVBR, "Quality-defined variable- > > bitrate"), \ > > - VAAPI_ENCODE_RC_MODE(AVBR, "Average variable-bitrate") > > + VAAPI_ENCODE_RC_MODE(AVBR, "Average variable-bitrate"), \ > > + { "mbbrc", \ > > + "Macroblock based bitrate control",\ > > + OFFSET(common.mbbrc), AV_OPT_TYPE_BOOL, \ > > + { .i64 = 0 }, 0, 1, FLAGS } > > > > > > #endif /* AVCODEC_VAAPI_ENCODE_H */ _______________________________________________ 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".