From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751927AbeA2NHC (ORCPT ); Mon, 29 Jan 2018 08:07:02 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:26470 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751765AbeA2NG7 (ORCPT ); Mon, 29 Jan 2018 08:06:59 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.samsung.com 20180129130657epoutp0274fec4e68ee030eadae3424fa23f5726~OScDrSdK61481214812epoutp02s X-AuditID: b6c32a4b-cd1ff70000001126-c5-5a6f1c707db6 Subject: Re: [Patch v7 12/12] Documention: v4l: Documentation for HEVC CIDs From: Smitha T Murthy To: Hans Verkuil Cc: linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, kyungmin.park@samsung.com, kamil@wypas.org, jtp.park@samsung.com, a.hajda@samsung.com, mchehab@kernel.org, pankaj.dubey@samsung.com, krzk@kernel.org, m.szyprowski@samsung.com, s.nawrocki@samsung.com In-Reply-To: <127cfd7f-113f-6724-297c-6f3c3746a8ff@xs4all.nl> Date: Mon, 29 Jan 2018 18:12:58 +0530 Message-ID: <1517229778.29374.9.camel@smitha-fedora> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 (2.28.3-1.fc12) Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA01Sa0hTYRjm29nZOY5Onabkq120hZhWrqsdyitJDOxHEkEJoSNPXtK5zrxk F5pJOpdlpgmKhUgGrbxsXrEknSPNO6n7YRRIYuUlwy1ppZHzTOzf8z6X73lf+EhM0oF7konK NJZTKpKlIrGwucvPd59qW2r0/ureY8x47SDO9BZPCRhzzZiAKevJw5mhoXqCGbg9SzDGzxac GWmrEDEF9U04U2P+SDDPjEsCpqrJRjBds3l4GCU36vNF8oant+T3G/VIbjXukI+aswl5708r cVoULQ6KY5MTM1hOFhIrTph5mStUWWRXK6oNhAbZfHTIhQT6MHzQWwkdEpMS+hWCLn09zg8L CDq/TjiVRQSVhXcFa5Ev9j7EC+0I6ga0Qn6YW8nb3mM6RJKudCToOt0dARG9Fxbn+0QO7Eb7 wEzbb8zhx+hmAYxYrKuvutDBYCsYQ46scMX08O8JB02tlBmKc4QOmqI3w3KrK7/DHqjV9Asd GKO9oGWuAuP5HAK6dTd5HAHDZU+cO7vCdHcjwWNPsH5vF/E4E14v2VfXB1qD4HF3NuKFUOgY rVjtxWg/qGuT8XQwPJo0YXzvRrj3Z1LgsABNgTZXwlukUNXf46wCGJtrwnksh7EWsxOHQ0Gn hniAdpavH1b+3zHl672VCNMjD1alToln1UdUh5RsZoBakaJOV8YHXExNMaLVf+Uf2YqMg6dM iCaRdAP146wyWoIrMtRZKSYEJCZ1oz5dWaGoOEXWNZZLjeHSk1m1CW0lhVJ3KjwqIlpCxyvS 2Mssq2K5NVVAunhqEFXLFfuW0NKICwuxC6FvzpfMcvnJhbqghrDMpuakSLmdcstOK3pRB9uP l01533l3pjXxuiDy18ktpeRRSIoKOdjRKTYGLvUse/V77Ho+r/VmWqYbJYY5+zmu/e1i3fD4 pCHK4nNjU7XMZ3epvaR6QhZq+FZki2mzXQpMs7hopUJ1guKAP8apFf8AWp+IXFMDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuphkeLIzCtJLcpLzFFi42LZdlhJTrdAJj/K4NNpJotb686xWpya/IzJ 4sjaq0wWM0+0s1qcP7+B3eJs0xt2i02Pr7FaXN41h82iZ8NWVou1R+6yWyzb9IfJYtHWL+wW h9+0szrwemxa1cnmsXlJvUffllWMHp83yXlcOdLI7nHq62f2ALYoLpuU1JzMstQifbsErozX a9pYCq7pV8xZupG9gfGLahcjJ4eEgInE85+nGbsYuTiEBHYzSlybvYYFIiEhsfL3JEYIW1hi 5b/n7BBFrxklDs84AORwcAgLeEt0HRQHqWET0JH49v40G4gtIqAq8XrXL2aQemaB9UwSLdd+ sYMkOAVsJb70XIXa1sEksf3MBrBtzAKaEq3bf4MNZQHqnvTPGSTMC3TdxsnNLCBhXgFBib87 hCHu0ZZY13AGqlNeYvvbOcwTGAVnIRk0C6FjFpKqBYzMqxglUwuKc9Nziw0LjPJSy/WKE3OL S/PS9ZLzczcxguNIS2sH44kT8YcYBTgYlXh4P4TmRQmxJpYVV+YeYpTgYFYS4b1XCBTiTUms rEotyo8vKs1JLT7EKM3BoiTOK59/LFJIID2xJDU7NbUgtQgmy8TBKdXAOKt65ZRHu2aetzNS yZywwN6Z+V0x+9+Jt5zzW4RV/++72HvD5t9kjmPLFwbalIY8PDTL0OnzwVj1W5Jb3XYenrd3 /mRR+/Nb01boKKmfz0ySenr/uJjGAy/nxasWaE81DYlZr+9wJGzJ+bQ/AptuWvDdTqrRd2bZ Et76rCNe8bPw8Za9fUuYVyixFGckGmoxFxUnAgD1ZqmmnwIAAA== X-CMS-MailID: 20180129130656epcas5p2f83e12aad9713bb80510b5abb1897298 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-MTR: 20180129130656epcas5p2f83e12aad9713bb80510b5abb1897298 CMS-TYPE: 105P X-CMS-RootMailID: 20180124112406epcas2p3820cea581731825c7ad72ebbb1ca060c X-RootMTR: 20180124112406epcas2p3820cea581731825c7ad72ebbb1ca060c References: <1516791584-7980-1-git-send-email-smitha.t@samsung.com> <1516791584-7980-13-git-send-email-smitha.t@samsung.com> <127cfd7f-113f-6724-297c-6f3c3746a8ff@xs4all.nl> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, 2018-01-24 at 15:16 +0100, Hans Verkuil wrote: > On 24/01/18 11:59, Smitha T Murthy wrote: > > Added V4l2 controls for HEVC encoder > > > > Signed-off-by: Smitha T Murthy > > --- > > Documentation/media/uapi/v4l/extended-controls.rst | 400 +++++++++++++++++++++ > > 1 file changed, 400 insertions(+) > > > > diff --git a/Documentation/media/uapi/v4l/extended-controls.rst b/Documentation/media/uapi/v4l/extended-controls.rst > > index dfe49ae..46ee2bf 100644 > > --- a/Documentation/media/uapi/v4l/extended-controls.rst > > +++ b/Documentation/media/uapi/v4l/extended-controls.rst > > @@ -1960,6 +1960,406 @@ enum v4l2_vp8_golden_frame_sel - > > 1, 2 and 3 corresponding to encoder profiles 0, 1, 2 and 3. > > > > > > +High Efficiency Video Coding (HEVC/H.265) Control Reference > > +----------------------------------------------------------- > > + > > +The HEVC/H.265 controls include controls for encoding parameters of HEVC/H.265 > > +video codec. > > + > > + > > +.. _hevc-control-id: > > + > > +HEVC/H.265 Control IDs > > +^^^^^^^^^^^^^^^^^^^^^^ > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP (integer)`` > > + Minimum quantization parameter for HEVC. > > + Valid range: from 0 to 51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP (integer)`` > > + Maximum quantization parameter for HEVC. > > + Valid range: from 0 to 51. > > You probably should mention the default values for MIN_QP and MAX_QP > (I assume those are 0 and 51 and are not driver specific). > Yes these values are not driver specific. I followed the way MAX_QP and MIN_QP are defined for other codecs like H264, H263, MPEG4 where only valid range is mentioned. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP (integer)`` > > + Quantization parameter for an I frame for HEVC. > > + Valid range: from 0 to 51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP (integer)`` > > + Quantization parameter for a P frame for HEVC. > > + Valid range: from 0 to 51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP (integer)`` > > + Quantization parameter for a B frame for HEVC. > > + Valid range: from 0 to 51. > > Sorry, this still isn't clear to me. > > If I set V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP to 50, can I then still set > V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP to 51? Or is 50 then the maximum? > > In other words, what is the relationship between these three controls > and the MIN_QP/MAX_QP controls. > If we set V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP as 50 then V4L2_CID_MPEG_VIDEO_HEVC_B_FRAME_QP or 4L2_CID_MPEG_VIDEO_HEVC_I_FRAME_QP or V4L2_CID_MPEG_VIDEO_HEVC_P_FRAME_QP will have maximum as 50. Similarly for minimum as well, the above three controls will adhere to the V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP set. These controls have similar in relation as seen with V4L2_CID_MPEG_VIDEO_H264_P_FRAME_QP and V4L2_CID_MPEG_VIDEO_H264_MAX_QP > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_QP (boolean)`` > > + HIERARCHICAL_QP allows the host to specify the quantization parameter > > + values for each temporal layer through HIERARCHICAL_QP_LAYER. This is > > + valid only if HIERARCHICAL_CODING_LAYER is greater than 1. Setting the > > + control value to 1 enables setting of the QP values for the layers. > > + > > +.. _v4l2-hevc-hier-coding-type: > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_TYPE`` > > + (enum) > > + > > +enum v4l2_mpeg_video_hevc_hier_coding_type - > > + Selects the hierarchical coding type for encoding. Possible values are: > > + > > +.. raw:: latex > > + > > + \begin{adjustbox}{width=\columnwidth} > > + > > +.. tabularcolumns:: |p{11.0cm}|p{10.0cm}| > > + > > +.. flat-table:: > > + :header-rows: 0 > > + :stub-columns: 0 > > + > > + * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_B`` > > + - Use the B frame for hierarchical coding. > > + * - ``V4L2_MPEG_VIDEO_HEVC_HIERARCHICAL_CODING_P`` > > + - Use the P frame for hierarchical coding. > > + > > +.. raw:: latex > > + > > + \end{adjustbox} > > + > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_LAYER (integer)`` > > + Selects the hierarchical coding layer. In normal encoding > > + (non-hierarchial coding), it should be zero. Possible values are [0, 6]. > > + 0 indicates HIERARCHICAL CODING LAYER 0, 1 indicates HIERARCHICAL CODING > > + LAYER 1 and so on. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L0_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 0. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L1_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 1. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L2_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 2. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L3_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 3. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L4_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 4. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L5_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 5. > > + For HEVC it can have a value of 0-51. > > + > > +``V4L2_CID_MPEG_VIDEO_HEVC_HIER_CODING_L6_QP (integer)`` > > + Indicates quantization parameter for hierarchical coding layer 6. > > + For HEVC it can have a value of 0-51. > > Same here: how does MIN_QP/MAX_QP influence these controls, if at all. > > Regards, > > Hans > > The values set in V4L2_CID_MPEG_VIDEO_HEVC_MIN_QP and V4L2_CID_MPEG_VIDEO_HEVC_MAX_QP will give the limits for the L0-L6 QP values that can be set. Regards, Smitha