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 291624398D for ; Mon, 4 Jul 2022 06:34:08 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7810668B960; Mon, 4 Jul 2022 09:34:05 +0300 (EEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D0AA768B7D9 for ; Mon, 4 Jul 2022 09:33:58 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1656916444; x=1688452444; h=from:to:subject:date:message-id:references:in-reply-to: content-transfer-encoding:mime-version; bh=wLEjulmslDvjDpPK3Itb1rKnyWqTdgT5EueA7QdW38Y=; b=QX7SNJnv2QNtWFXERfwBWrAvQI++PmmVaoPCq7cGvXJRchREVlmzzPp9 j/iXcUxGb34DzgvK2igrH83Bp78RV+tFQL+4tXtMmNhRDGWmt3gNLd+EX EtqlmBPwr4dsknFB88F+Zj3eha9aLonJ9sDdl3bmlfdq4u9+MjgUAesMc t5FB52hQj/dsyN98apWDsOQvP8iCf0Mf4I/rvi1Qr63Lwq01nUUA8fjR0 +YIioRHCO29EvgvjiQ9dIXPO2IH7mxqCsgTolNJJrC0MhJuIxyJE/V+dW MflO8wFYSorW40uUH1xYPeeEQ7lKcJacRmvyGYkOQanFun9y6Ne2nen/M g==; X-IronPort-AV: E=McAfee;i="6400,9594,10397"; a="347027197" X-IronPort-AV: E=Sophos;i="5.92,243,1650956400"; d="scan'208";a="347027197" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2022 23:33:56 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.92,243,1650956400"; d="scan'208";a="542467474" Received: from fmsmsx604.amr.corp.intel.com ([10.18.126.84]) by orsmga003.jf.intel.com with ESMTP; 03 Jul 2022 23:33:56 -0700 Received: from fmsmsx607.amr.corp.intel.com (10.18.126.87) by fmsmsx604.amr.corp.intel.com (10.18.126.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27; Sun, 3 Jul 2022 23:33:56 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx607.amr.corp.intel.com (10.18.126.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.27 via Frontend Transport; Sun, 3 Jul 2022 23:33:56 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.103) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.27; Sun, 3 Jul 2022 23:33:55 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WaidD1TIi5aMugJqx0Qwb+77FPFOraDrfVCiGGoH4K80cw2wRauwgJn0GMgx8cg+g4a20JNDBy15TfQ4F4pk6gwKE0LYYIIAHykNeC8FVEirNidID69DmysZvY4Sv/ccpNMUnqo+0YQ0pq27Goy35uInAIY5qlaCGCZm7VEPQBBETpzuytYS7YYy12o5Du9gtKAcVOX6sxH1pT8q5MfNQW6VZmFCGQZx1CYTUEiweFR0qrVV4K7eqf0acgwRioXwkgVIoB1NNbmpeo3/TEbcwUhdpOCwJlHwzo8s9rZnAE1qe9OPSUaSX0rkHeXbtKXUbCjo8sTFYZ2t/3Cq95e2rA== 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=Tooh1XXg/OEw5X0Rq741f+dA84by4LGEWWNM3ydrutE=; b=WSrGkesEGZmgF+LJi0NpQjIKBhgkqgtsfeXxxFol8eqtGe3xOrRHt9EMs5tn3Xk05XyPy4GL1PmjQPFCCfp9/mjm+nlcaXxB116Mji7xYtsdFpLyak++ppixg4G4ykk0UmVyCK57HbUBOaiWt+RolbCBhs3kVaCfMqcHZ2U1asKVnuVvTh5NzN3JhDIOQTS4x0b2GDd7jxjPbaQ7m32xtP3JFWpga+fVfGh3tmYk6sAZlLr4HmLK0UCZ1U+Fnl74OIoMbXUwt91CdNc529XfTB7bKzCfmPpC24cBx0QNpnef0dVTJEeIx++3YNG9DRktPk7q9nJlJz5WSf4Fz4r1ag== 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 BY5PR11MB3879.namprd11.prod.outlook.com (2603:10b6:a03:18f::17) by CO1PR11MB5090.namprd11.prod.outlook.com (2603:10b6:303:96::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.14; Mon, 4 Jul 2022 06:33:49 +0000 Received: from BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::b02e:fe48:73f6:f310]) by BY5PR11MB3879.namprd11.prod.outlook.com ([fe80::b02e:fe48:73f6:f310%6]) with mapi id 15.20.5395.020; Mon, 4 Jul 2022 06:33:49 +0000 From: "Chen, Wenbin" To: FFmpeg development discussions and patches Thread-Topic: [FFmpeg-devel] [PATCH v3] libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtime Thread-Index: AQHYhsNdtQTqFte73E+7S94k0KTQ8q1q4aGAgALdVzA= Date: Mon, 4 Jul 2022 06:33:49 +0000 Message-ID: References: <20220623053242.360909-1-wenbin.chen@intel.com> <165675474959.31466.10582792568629584963@lain.khirnov.net> In-Reply-To: <165675474959.31466.10582792568629584963@lain.khirnov.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.500.17 dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: f2baba1f-2dc5-45da-ea2c-08da5d8727f6 x-ms-traffictypediagnostic: CO1PR11MB5090:EE_ x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: y+f4SA/oBqcvzTH44/yUuHW930YoxiLfxJhGxeuEBxCrNvlFDXf0dzH2+P/+WAQpxWNBsWTURvzqkRtSfOzfZaCApZtGOJFYEZhocAsry4wRigONxK8KCEUd+ChLbjFMZdihiCQkvq1nJwM/KNEsT4gjHC0yIOvJJvHsDG4aisys/YE3AjO+mbYE8tCP2FnMVv8uoP9dpcBbgMNYbA7khOhnRzBowH7CBoFqQfEPRQf7TVG8lgdAK0vWRB4eWzNCYa0luvnyAvm+LeZOjw3CeFYWlWXrDIKG9BMUXiVwcp+jKswV8JC8wbdJY40ZUAP9fAvAxRQhLyz9e+WptKrKEuhaBLKVKr6CRePfov7JcNfKm+qy0Y9HYEbBX/PMyu4r1P454fOPKLyI9gvGVQc+lxdq9csIDyl6kLaQnNBfH0IfAvB+qopelet/zXIAAWgkqpiyi5JnUzng1BnvC/EZrQkx90W3rYAxLiE1AA89B/NHehDP2ls480Mn1tpn9W8iCPGTttYJJ81GyFvCzPpcADSVUAv32kZRCc+XaGw+fzOfHj/EZt2OJw4ejTrivxCzyLvpwP8LrJlasGWGgkPRmEfR8XyFzswwkebjgCXOMIkgU+UEAD6BrIDp2zBxpzw4rtOOHqOSDwWMJumgg+f3/y7JyH1khCPW/ex44ZGVi14DKe1te5gnS47LKmg4cDzKH6phlsvdXvWQxwZlgFOAzRVE+XLlWvgHRga5tmK/ZyL7a+hpiFp69EfMDo1SZidD5+uOqMB4BghcC47GLDANedwruJK7VTU8aAmc6kfk7Px3cHDdC3xYAsU+uGAQseXbSd9fCVNTrlHelB9IoF9G5455dNiBUCHbPaTBeXB+q7o= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BY5PR11MB3879.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(346002)(366004)(376002)(396003)(39860400002)(136003)(2906002)(82960400001)(52536014)(6916009)(122000001)(8936002)(38070700005)(5660300002)(66476007)(64756008)(8676002)(186003)(66556008)(66446008)(66946007)(76116006)(316002)(83380400001)(71200400001)(38100700002)(86362001)(9686003)(26005)(7696005)(478600001)(6506007)(55016003)(41300700001)(33656002)(966005); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?8wc9COUEO2LHUmls8UEBvK5Q/V7uYewCwf5HakLHzgl4VqbI5XeBUhMGWHTL?= =?us-ascii?Q?ClQCXyiWUa+JsB4RZcCl7c0PzSJerAo6ogfQ9N0jQFAg4Gxqyc6Pjx0Ty8zL?= =?us-ascii?Q?ng5AijyuCj9rYbZEM58/m+5SXZidTTttkqn/g6uLMxCajxlRbx/4SPnIVC2k?= =?us-ascii?Q?VOZgN60zZpnC8diAAR0MBBpKm12Ho91zrbs+1aVxrr5G1q738zqLWxikMfSl?= =?us-ascii?Q?vOUxbxLCOEILYMejFCGYo1ll5+9Ur1BBHJ60mS4aeeDHBST49taB2TUA6Kb1?= =?us-ascii?Q?RloSKmC5EnzEc7q1dJisv+EzNvwSl+rbdvG5Bxf4QUl2bTRtgRKWXi4zYF6Y?= =?us-ascii?Q?SObSI2CZCS/BFjW5m4n5sWkbfT3syKtc8sEDQDxNd7Aj8mXQ16ryWMOqiSHn?= =?us-ascii?Q?vS/CcBzvNjNyrOYjfvzVPfcUPZdLdPJs0qNvY1RbUzW1iVvMv8R9x0V3pfy+?= =?us-ascii?Q?f9dkk2cf43Ifm3X7kis+dCZUhXyB+PxiSjDtAbt69aNqqHN0so3aO1bzR/RA?= =?us-ascii?Q?ilJhFPySFS+jfMxhblMGOJYP9pAnJ23cNbvK1mkL+haGATWz72mmpEK+MmTZ?= =?us-ascii?Q?HZSXLNbw4AtLQv7J/SyB3kQgopjDjWBFQjQ32/cMr35RGmJ58sI9NFksMys2?= =?us-ascii?Q?iZgeSswet8CapBNCsM0/34EP6hciive6RiBkc+SxMxjUA+nznFYdhFz+zw6y?= =?us-ascii?Q?NMDm2W7YGMVUTNRjAAlsKr/6el+MVwTWUxyCtWYrC3X7thgIwS1hy7U21+L1?= =?us-ascii?Q?/wVwyWLTIFHz5JHBSajnGKIE8XAOY3XiV/b3FcTUC7nKucO2rC4enQn4V8jl?= =?us-ascii?Q?sbuwmvvbMsiuB6LP0vCJHxdDJ7ks81VvYl+TFele8mAvDA+be2rJGIl8nk5R?= =?us-ascii?Q?rEnCscO1pGpeNLmZIAzJUetHzwBiMhqti/YbJlFw8awb5Ux1kKIQnhxBDKHw?= =?us-ascii?Q?h+2MVbWIG0mvx2jwVruTTd5WMLDA2gIyRzQYr3LbpjJARgEKvXLQpG9ICsNW?= =?us-ascii?Q?gRQYNbIMiDP2mX1ekJ8VvQGUDBdMDKmhxKLmHw+JF3P9Jt/W+YnGTf47LSTa?= =?us-ascii?Q?kLyc5tElCLimXmEPMBhSQsa8B7ZeUhGhn4ssQ4InQUCGC6hCOIIbTI6pdEmi?= =?us-ascii?Q?Rkf2DKkjh2/bOwJMZJtlD8AX5jJXDs1EOC6uF/ZyXTnnHYvWmJBo+hijgj3Q?= =?us-ascii?Q?LrPy4RvIyM4VOj6F13YnE+CpQQ2EoeTpX9CZdUogyouuLaH2uHZ1Pr996PlH?= =?us-ascii?Q?3cgJzVd/FgXKSBCpkLA3F29gLcrPAEsEP32jiCj+X7gNW3YFINd/s18ws7Vs?= =?us-ascii?Q?1IM005OsjIGyREIyTPAa7Nj3FTNRUpAmIK4K0exQiIjxup0O9UIB6Q2QECjE?= =?us-ascii?Q?B4kD2Onu7pglIpE7ihL3dPUHi2uEGeUCRwRLCbbFvq7N9Ti+IcQ7cuWi76E0?= =?us-ascii?Q?y+IhJ3YI7RZunYyIk/hiB/fMB3l7FueHxQ1Cr2xiKHmAAA2i89hAZfqpXDRS?= =?us-ascii?Q?rWXD7Sjb8b3+pDuobFmHtiNSgNbMeNpHllPxsPWh8A3B0b26N5gfoZupnCZZ?= =?us-ascii?Q?U9BfeTjPZ+PjZCs6KIB2ULi5Gr1uoIETOF6col90?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BY5PR11MB3879.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2baba1f-2dc5-45da-ea2c-08da5d8727f6 X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Jul 2022 06:33:49.8182 (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: PDFoMqenCkkmLoKZhqqcijSG4sRMuOb8J5elH1fHP7MNDz5Gq4Y2jONhTerP1iFjygdw3sDndI4IHixexsfjpw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO1PR11MB5090 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v3] libavcodec/qsvenc: Enable fixed QP configure in qsv CQP runtime 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: > Quoting Wenbin Chen (2022-06-23 07:32:42) > > From: Yue Heng > > > > Enable dynamic QP configuration in runtime on qsv encoder. Through > > AVFrame->metadata, we can set key "qsv_config_qp" to change QP > > configuration when we encode video in CQP mode. > > > > Signed-off-by: Yue Heng > > Signed-off-by: Wenbin Chen > > --- > > doc/encoders.texi | 10 +++++ > > libavcodec/qsvenc.c | 89 > +++++++++++++++++++++++++++++++++++++++++++++ > > 2 files changed, 99 insertions(+) > > > > diff --git a/doc/encoders.texi b/doc/encoders.texi > > index 1850c99fe9..02a91ffe96 100644 > > --- a/doc/encoders.texi > > +++ b/doc/encoders.texi > > @@ -3333,6 +3333,16 @@ Forcing I frames as IDR frames. > > For encoders set this flag to ON to reduce power consumption and GPU > usage. > > @end table > > > > +@subsection Runtime Options > > +Following options can be used durning qsv encoding. > > + > > +@table @option > > +@item @var{qsv_config_qp} > > +Supported in h264_qsv and hevc_qsv. > > +This option can be set in per-frame metadata. QP parameter can be > dynamically > > +changed when encoding in CQP mode. > > +@end table > > + > > @subsection H264 options > > These options are used by h264_qsv > > > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > > index 902bada55b..2382c2f5f7 100644 > > --- a/libavcodec/qsvenc.c > > +++ b/libavcodec/qsvenc.c > > @@ -146,6 +146,14 @@ static const struct { > > { MFX_RATECONTROL_QVBR, "QVBR" }, > > }; > > > > +#define UPDATE_PARAM(a, b) \ > > +do { \ > > + if ((a) != (b)) { \ > > + a = b; \ > > + updated = 1; \ > > + } \ > > +} while (0) \ > > + > > static const char *print_ratecontrol(mfxU16 rc_mode) > > { > > int i; > > @@ -1613,6 +1621,83 @@ static int set_roi_encode_ctrl(AVCodecContext > *avctx, const AVFrame *frame, > > return 0; > > } > > > > +static int update_qp(AVCodecContext *avctx, QSVEncContext *q, > > + const AVFrame *frame) > > +{ > > + int updated = 0, qp = 0, new_qp; > > + char *tail; > > + AVDictionaryEntry *entry = NULL; > > + > > + if (avctx->codec_id != AV_CODEC_ID_H264 && avctx->codec_id != > AV_CODEC_ID_HEVC) > > + return 0; > > + > > + entry = av_dict_get(frame->metadata, "qsv_config_qp", NULL, 0); > > Why is this using frame metadata rather than the AVVideoEncParams side > data? The usage of AVVideoEncParams relates to the "qp" variable in mfxEncodeCtrl which is passed to MFXVideoENCODE_encoderFrameAsync(). This variable in qsv is for per-frame QP configuration. There are other parameter changing supports I want to add besides QP, for example, gop_size, max_frame_size, intra_refresh. These parameter configurations are not all included in mfxEncodeCtrl, so I choose to use MFXVideoENCODE_Reset() to do this. This code changes the encoding parameters which means these changes are applied to all the following frames, but AVVideoEncParams is per-frame configuration, so I think AVVideoEncParams is not suitable for this. > > Frame metadata should not be used in encoders at all. Longer term it > should not be used at all by anything. > > -- > Anton Khirnov > _______________________________________________ > 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".