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 9B5CD49A04 for ; Mon, 26 Feb 2024 02:30:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D490468C778; Mon, 26 Feb 2024 04:30:29 +0200 (EET) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0D08D68C651 for ; Mon, 26 Feb 2024 04:30: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=1708914628; x=1740450628; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=+XTjz1olQekg8o3PJe7FKTNOnZva4ZVOkXSJMMW2VgU=; b=IeSO00TMEqFYr7CoYSW3bg01LVFlxeL9yyWF262hGEfAaR9tA6+22gsj sP/zmMUe8v6IkPZcIMcYRB+AwmTNl+enwXd1ClO/TDOIcf4mneZJiD/un dQrEtyMGsiAHL5zq2nokkjDaNOneARL0clGZQTyamrD1IHkL57EN4Ysoh zphwdUnh187Tpy17ujdFPBldOxRffU8mxhns/I0Tab5SJ2K5+ro6bYX4i qGzAw85AISapg3H3w8cvBtUETCSF13986ZM8O/wJJ2mdrrtMoCipe2wJP rrImcudbnKk2LVyJbtsAqLhijBZGafX+RhSRxxLxpKjTshHSUVpRsvhv/ w==; X-IronPort-AV: E=McAfee;i="6600,9927,10995"; a="6968107" X-IronPort-AV: E=Sophos;i="6.06,185,1705392000"; d="scan'208";a="6968107" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 25 Feb 2024 18:30:20 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.06,185,1705392000"; d="scan'208";a="7015856" Received: from orsmsx601.amr.corp.intel.com ([10.22.229.14]) by orviesa008.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 25 Feb 2024 18:30:20 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) 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; Sun, 25 Feb 2024 18:30:19 -0800 Received: from orsmsx612.amr.corp.intel.com (10.22.229.25) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Sun, 25 Feb 2024 18:30:19 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) 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 via Frontend Transport; Sun, 25 Feb 2024 18:30:19 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.101) 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; Sun, 25 Feb 2024 18:30:18 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FQwWp14V4AVgL8uX9Fu0G5VIatIgKVAqC/ub4khplCoIzAvf5w6eE0tGgOmSJsJeaorqQnjBg5WGWCg4u0mwjLL4XCSgFw4B4WtORX/Xv/XFtqja8q+h7u0i+pWyQ+5msRwsfjCeC/FNdBGBcIc3U0caEatdml7XU75vQRszWLXMeug8mYUXirwtI/lgiBPxU5Yb1f6xQXIGzXgMcUY1Q0xyB/RtE7dAH1HZADE8UsFPBDiJxTaaL8R1QpR7Bio5bag6KcPi3O0OBEhwCoerWTe8vNgg3fpYKFxkQpvMyP2FE/14xcQPdxu9Qn39mhfPUuVwLWf4wFzIqMKEFWADDw== 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=+XTjz1olQekg8o3PJe7FKTNOnZva4ZVOkXSJMMW2VgU=; b=Lf2XSLjOM29SmVK7O3STCXCLuLSIYGI3pETH5PYXawUws5EFL/guM9hVdmceMSFgaX1vZAnzp2Olru15u0J81Ck9bvFjJfqf8fKdM1CN6cYwP+BHh4+HuIFv0Ay7lUApQGivAlVIWZYOMYeHQsLHn68QRwUciFLeRh3ssBjg/cyHUnTDqBcpv2fJkoqCD74a0mk/k+9g00z/lX0bRS9p4o6LoQCsyDGp5yfG7KJcHuQbpTSN5Mw2Qi2pYRrxr7YxgisaVjv7i73LJF6Zq6QEPq6pTFv5KdmRXyQBTl5M5JGG8nIZc/nD5lskD5x3/XdLeCy8Z5Z/9m3m58XRQjo/1Q== 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 SJ0PR11MB5868.namprd11.prod.outlook.com (2603:10b6:a03:42b::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7339.10; Mon, 26 Feb 2024 02:30:16 +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.7339.024; Mon, 26 Feb 2024 02:30:16 +0000 From: "Wang, Fei W" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2] lavc/vaapi_encode: Enable Macroblock based bitrate control Thread-Index: AQHaaB/B0XnWl74Whk6mkYH9qBa9xrEb56GA Date: Mon, 26 Feb 2024 02:30:16 +0000 Message-ID: References: <20240223071442.170041-1-fei.w.wang@intel.com> In-Reply-To: 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_|SJ0PR11MB5868:EE_ x-ms-office365-filtering-correlation-id: b9f398b5-c5cf-422c-055d-08dc3672de54 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: OovqmcU1FTIZuF4C6XNMgtkejiZwAuuC4rm2h8hXshr1PjfFgLOk+8GxPfHbxB6EhZXbLZa9XdeSYOnAtaLcXEFIKF6rYusRnfUz/N6azPtT0XIk0Xq3B5ufwkQyUOVDBkTBrfGWblQtJaPRNce5tt3XzGbczBwOwI2UW0Bjd5dUQGWNs3D0PV0273QT/AVN63DqJhjJ6dFN4UEKb2Ub4YyrBRYB3WVLRbtH/uzzqCMV1AX/MvxoyZxyKq5li40y7nqDcVYoERojm1F5fo6iZ+9Mxk86TFuMcnPuR+ar+lERfuFV3msruIzi/BTDOJ1vA1o7WLqr6V3cZY9Ng8M6db/54BHEiDxBNS3BXfR4FIgmP6IyqVCpfIGDZcwGiS33EheD+hhDZLfZDF1je5Eqva9NI9bsi+LK+d5ykLxAuNCaNP7Ccj/KDlkzQ4UHhG4ESpDtgsOBuaQGO2LJyBpWYpwsq3InTcI/faPoWlz3afIgCcwp2Ddc70r0cVjK+K/XH4H7F7nO7ngUz5x0GEutPglK+HbA+55JRJuxi1+orYpD5FlC4aYSE8tmyhzNCErHig8IPUseZEBcecnw7dueTASpEreFJSirpM7oBnlBaWIsrruBAg2sfm9KoJ518y5NLj5wlhzdT/e2Ht53YcUyy+Rr//ti4mXJB2wKB8dxH72+2MYcs8cWQ41C7bLf2XQLZsHNzGuVUBt4nIOjjzDYrg== 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?V1dNQ3g1b2tWWFh1Ukl4ZEJXUUhtV0w0SStoTlFRcSsyNlhwajFsM1M1TTht?= =?utf-8?B?akpUZnJ6QjlwbmQyczZSTE1VT2hRNFdURmlvdDZGZVFZK2dOQTdZUTd6MFFC?= =?utf-8?B?RnN3bDZpalVRb3FGUnRpQ0VETDZOSUNkb01xUUR6ZFFWWUhjcit3WGZBWnl2?= =?utf-8?B?eTZKOFJMUi83ZTVvQTNZRTRiSlBSaGg2Y3FUNzlnZkM5NFBrOWZ0ME5CSVNp?= =?utf-8?B?TFpaSDBjOTI3ZkJaeWNiWGtlblpseERQZXFqNFpBK3JvUmMzNDhRcTU2T05Y?= =?utf-8?B?Y2FTQkpqZXhlaUNHWXRPMXlVY1lLeTM3VnVNbDU4Y1BtTUFTY01LdWxaSm1W?= =?utf-8?B?cXNQcGtDaTdkODBRdVVndTV3dEJPUmNON2YxN1hudDFMM3JjL3RQZ0dyVUJp?= =?utf-8?B?NDlzWEtpVjBEbUZhbDEwVVBOYnJpbGswVGZQQ0RBbWZOQjhDbVIzeEg1S0xI?= =?utf-8?B?aDVzRVU2K1NiOTR3UTR3cDFtdGR3SVl0NU8xTlljemFYdkJqc1NaWCt0NWsv?= =?utf-8?B?aExueFQzOUxjRWFZN3JYbHJpaW9lRnhOTWR5MC9MUFg1d3VRQXdFbWVCWTA0?= =?utf-8?B?QUJ4eWNycG8zZDFCNlArTFljOFowcGlZQktTdEtEODU1aVFnZnUvcUprdWJs?= =?utf-8?B?TWkwZHYzTzB0aWhrb1pkTktaNHF0MCttT1lFakttd2MycUdkS0o3MU5ZNFdF?= =?utf-8?B?Sy94SVY3b1hpdjB4QjBmRWZoVlhnT1BveXZ4WVJxc2N0eVdmbDFQM3VveW9W?= =?utf-8?B?Q1lYKzdFSnB0ejc1Z2orMERHZTdCdC9mUXlCdlcxOXZEb0xtaytxTXdsTk5m?= =?utf-8?B?NDR6ZHdSMjQ1RXJ3RXUzbnZlbDNob3dSazAxcUpaek9hS3ZmZjNSRFA3THBQ?= =?utf-8?B?WjZlMWVNbUgrd3pDSG5mMmk3NUo0cGxaTHB1aFgzbUlKWnlrdERleEd6YmJY?= =?utf-8?B?UHJDcFJYcW1uWjJrRXVlTDY2bnJwMk11U2FOWVRHR2RlQ2JxSjFLZnU4NllL?= =?utf-8?B?SE1BU0tpdG8xd1plTU1IS1JMTG1hbHB0Z2hodzcreUtGbXBQRllEUWxnblhR?= =?utf-8?B?QTlYcUFBYi9jQ0h5M05yNHZSQTRKSXVnNUtDNG9tSFlTSlFoTjVYaWlkSERq?= =?utf-8?B?RzlISVcvWGpwR1VTN1hNelU0YjFkSGI5UWtzLzdjL2VWRG96ZmxNMGRYMEFE?= =?utf-8?B?NHc3dHhRK1F2MzZHQzg5eG1LSkJnVGdES1BMaTFGSVYzQVZlaFBJVWI3cFc2?= =?utf-8?B?RjdDM2tzTFRLdWRkL2piVjd1Z0hvTUlDbXJ6aE9mT1Z6aW92NkZNU3paYzl0?= =?utf-8?B?VTZTV3A3d2ptNlNXcjcrbmdMeWpBb3QzbVJ3WlljUDhBVjRacjZCUmZ4c1JI?= =?utf-8?B?RjJKNGpFZFBjZ3RPdUNRUm1wWDBEa1pzTy9OM2dSeWZqOFNINFVRc0NJRUlO?= =?utf-8?B?MW15aXRlNm04amQ0WFNldnRzVmMyZm5oQm5ZZ3FUdFpLMWIyVXdhVXJTSk0z?= =?utf-8?B?dmF6allpY09FQk9aU3o2cGg2UEtwTVFZTHhYMVlOVUNmdnhFMkNLSWdLdE5V?= =?utf-8?B?VTlEZ0hFYW5UZjh5NG0xSnV5b1M4OEpaYTRuSVJObFhHUWx2a0JEaklRT2JI?= =?utf-8?B?dTVpUzRLNWF6R0RoZzlnU3lWaVhodjZrVkcrWnk2a0g3M3NROGxHUUwwano5?= =?utf-8?B?cFNOTU1zOHI2RnhBek1CWDhwTjdaV1QrSnFvalF0YkxLQURvM0lnYlZSbWpz?= =?utf-8?B?N05laGQxZkNkK1RTLzZ5cWRYdUYwRHZyWk5vNjcySi9kTlA1NGhGSmZ4RGVW?= =?utf-8?B?eC8yanN1dUxiL0dtd09iK01ybUcvNGJ4Y0FxWjNyY2FOeUNtMWJHRnAxaUZ4?= =?utf-8?B?QW1ncXBPdE9tNlN6V2htVCtyVkRCcFRzZGlXSnUrMHo3ZWFRV0tWTWd1c0ZB?= =?utf-8?B?V0JxS0lncFV1YlZmWExvVEhEQldFRmdjdlh1cnhucy9TZDdFeEExNTMvUlRa?= =?utf-8?B?ZHRMcDNKMGpDaCt2VzB3KzhhMVpwUjFsbnVyOStKSFpYeXpZL0RKOUlkcHBP?= =?utf-8?B?MitpdnVKaUQ2ZXFUUkpSQ2k3Ry9TdEtqYTRidDJndE9LN1VZQW9WY2loZU5E?= =?utf-8?B?RllpV0dmN2JuNkdyNW5sNGcxQ2NTUU11QmhVVDdzYW03VEQ3Z2pXRTZRQzdV?= =?utf-8?B?V2c9PQ==?= Content-ID: 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: b9f398b5-c5cf-422c-055d-08dc3672de54 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Feb 2024 02:30:16.3667 (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: LLrA55r4h/6C/f4r1eBgQOVmhlEFQf9qZT79I+wX4hZIUEZvpEzVXzl9+JWwsLZA/0XZEJG4cGis0z4gCGV+Lw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5868 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2] 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 Sun, 2024-02-25 at 19:15 +0000, Mark Thompson wrote: > On 23/02/2024 07:14, fei.w.wang-at-intel.com@ffmpeg.org wrote: > > From: Fei Wang > > > > Signed-off-by: Fei Wang > > --- > > update: > > Print mbbrc status with "ON/OFF" instead of "0/1". > > > > doc/encoders.texi | 3 +++ > > libavcodec/vaapi_encode.c | 11 ++++++++++- > > libavcodec/vaapi_encode.h | 9 ++++++++- > > 3 files changed, 21 insertions(+), 2 deletions(-) > > Can you explain what the option actually does? The current > documentation doesn't really give any hint of whether a user would > want it on or off. > > It also seems like this is a legacy name and maybe should have a more > generic name to make sense - the iHD driver at least accepts the > option for H.265 and VP9, neither of which have macroblocks. How about BLBRC(Block level bitrate control)? > > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > index 9f477d7c53..3f11a80039 100644 > > --- a/doc/encoders.texi > > +++ b/doc/encoders.texi > > @@ -4086,6 +4086,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..e4bf15fea0 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; > > Probably not a good idea to silently disable what the user explicitly > requested. > > > + > > 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: %s.\n", > > ctx->mbbrc ? "ON" : "OFF"); > > + > > 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, > > What did the previous 0 "use default" do here? 0 means auto decide by driver. This feature may has impact on frame psnr, so set it as off by default and expect user enable it explicitly. Thanks Fei > > > #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 6964055b93..9774cc86b1 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 */ > > Thanks, > > - Mark > _______________________________________________ > 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". _______________________________________________ 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".