All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fish Lin <linfish@google.com>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>,
	Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Paul Kocialkowski <paul.kocialkowski@bootlin.com>,
	Tomasz Figa <tfiga@chromium.org>,
	Keiichi Watanabe <keiichiw@chromium.org>,
	Smitha T Murthy <smitha.t@samsung.com>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v7] [media] v4l: add I / P frame min max QP definitions
Date: Fri, 29 Mar 2019 11:14:01 +0800	[thread overview]
Message-ID: <CAHpF3dedkOzX0o3raKWZMkVAUMsyMHw+iUtk-4wRwEZc9e3fPg@mail.gmail.com> (raw)
In-Reply-To: <20190329025950.52582-1-linfish@google.com>

Sorry, please ignore this patch, I mis-edit the patch file, will send
the correct one.

Fish

Fish Lin <linfish@google.com> 於 2019年3月29日 週五 上午10:59寫道:
>
> Add following V4L2 QP parameters for H.264:
> * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP
> * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP
> * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP
> * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP
>
> These controls will limit QP range for intra and inter frame,
> provide more manual control to improve video encode quality.
>
> Signed-off-by: Fish Lin <linfish@google.com>
> ---
> Changelog since v6:
> - Adjust ctrl id start from 385.
>
> Changelog since v5:
> - Adjust documentation wording.
>
> Changelog since v4:
> - Fix patch subject and send again.
>
> Changelog since v3:
> - Put document in ext-ctrls-codec.rst instead of extended-controls.rst
>   (which was previous version).
>
> Changelog since v2:
> - Add interaction with V4L2_CID_MPEG_VIDEO_H264_MIN/MAX_QP
>   description in the document.
>
> Changelog since v1:
> - Add description in document.
>
>  .../media/uapi/v4l/ext-ctrls-codec.rst        | 24 +++++++++++++++++++
>  drivers/media/v4l2-core/v4l2-ctrls.c          |  4 ++++
>  include/uapi/linux/v4l2-controls.h            |  6 +++++
>  3 files changed, 34 insertions(+)
>
> diff --git a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> index c97fb7923be5..5b2db52d3b4e 100644
> --- a/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> +++ b/Documentation/media/uapi/v4l/ext-ctrls-codec.rst
> @@ -1048,6 +1048,30 @@ enum v4l2_mpeg_video_h264_entropy_mode -
>      Quantization parameter for an B frame for H264. Valid range: from 0
>      to 51.
>
> +``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP (integer)``
> +    Minimum quantization parameter for the H264 I frame to limit I frame
> +    quality to a range. Valid range: from 0 to 51. If
> +    V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
> +    should be chosen to meet both requirements.
> +
> +``V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP (integer)``
> +    Maximum quantization parameter for the H264 I frame to limit I frame
> +    quality to a range. Valid range: from 0 to 51. If
> +    V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
> +    should be chosen to meet both requirements.
> +
> +``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP (integer)``
> +    Minimum quantization parameter for the H264 P frame to limit P frame
> +    quality to a range. Valid range: from 0 to 51. If
> +    V4L2_CID_MPEG_VIDEO_H264_MIN_QP is also set, the quantization parameter
> +    should be chosen to meet both requirements.
> +
> +``V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP (integer)``
> +    Maximum quantization parameter for the H264 P frame to limit P frame
> +    quality to a range. Valid range: from 0 to 51. If
> +    V4L2_CID_MPEG_VIDEO_H264_MAX_QP is also set, the quantization parameter
> +    should be chosen to meet both requirements.
> +
>  ``V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP (integer)``
>      Quantization parameter for an I frame for MPEG4. Valid range: from 1
>      to 31.
> diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c
> index b79d3bbd8350..115fb8debe23 100644
> --- a/drivers/media/v4l2-core/v4l2-ctrls.c
> +++ b/drivers/media/v4l2-core/v4l2-ctrls.c
> @@ -828,6 +828,10 @@ const char *v4l2_ctrl_get_name(u32 id)
>         case V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION:
>                                                                 return "H264 Constrained Intra Pred";
>         case V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET:   return "H264 Chroma QP Index Offset";
> +       case V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP:           return "H264 I-Frame Minimum QP Value";
> +       case V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP:           return "H264 I-Frame Maximum QP Value";
> +       case V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP:           return "H264 P-Frame Minimum QP Value";
> +       case V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP:           return "H264 P-Frame Maximum QP Value";
>         case V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP:              return "MPEG4 I-Frame QP Value";
>         case V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP:              return "MPEG4 P-Frame QP Value";
>         case V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP:              return "MPEG4 B-Frame QP Value";
> diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
> index 06479f2fb3ae..4421baa84177 100644
> --- a/include/uapi/linux/v4l2-controls.h
> +++ b/include/uapi/linux/v4l2-controls.h
> @@ -535,6 +535,12 @@ enum v4l2_mpeg_video_h264_hierarchical_coding_type {
>  #define V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING_LAYER_QP  (V4L2_CID_MPEG_BASE+382)
>  #define V4L2_CID_MPEG_VIDEO_H264_CONSTRAINED_INTRA_PREDICTION  (V4L2_CID_MPEG_BASE+383)
>  #define V4L2_CID_MPEG_VIDEO_H264_CHROMA_QP_INDEX_OFFSET                (V4L2_CID_MPEG_BASE+384)
> +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP        (V4L2_CID_MPEG_BASE+385)
> +#define V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP        (V4L2_CID_MPEG_BASE+386)
> +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP        (V4L2_CID_MPEG_BASE+387)
> +#define V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP        (V4L2_CID_MPEG_BASE+388)
>  #define V4L2_CID_MPEG_VIDEO_MPEG4_I_FRAME_QP   (V4L2_CID_MPEG_BASE+400)
>  #define V4L2_CID_MPEG_VIDEO_MPEG4_P_FRAME_QP   (V4L2_CID_MPEG_BASE+401)
>  #define V4L2_CID_MPEG_VIDEO_MPEG4_B_FRAME_QP   (V4L2_CID_MPEG_BASE+402)
> --
> 2.21.0.225.g810b269d1ac-goog
>

  reply	other threads:[~2019-03-29  3:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-28  7:29 [PATCH] [media] v4l: add I / P frame min max QP definitions Fish Lin
2019-01-30  7:45 ` [PATCH v2] " Fish Lin
2019-01-30  7:56   ` Hans Verkuil
2019-01-30  8:56     ` Fish Lin
2019-01-30  9:11 ` [PATCH v3] " Fish Lin
2019-02-08  9:58   ` Hans Verkuil
2019-02-12  9:23     ` Fish Lin
2019-03-15  8:40 ` [PATCH v4] Add following V4L2 QP parameters for H.264: * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP Fish Lin
2019-03-20 15:00   ` Hans Verkuil
2019-03-21  2:08     ` Fish Lin
2019-03-20  6:18 ` [PATCH v5][media] v4l: add I / P frame min max QP definitions Fish Lin
2019-03-21  2:20 ` [PATCH v6] [media] " Fish Lin
2019-03-28 15:01   ` Hans Verkuil
2019-03-29  2:57     ` Fish Lin
2019-03-29  2:59 ` [PATCH v7] " Fish Lin
2019-03-29  3:14   ` Fish Lin [this message]
2019-03-29  3:20 ` [PATCH v8] " Fish Lin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHpF3dedkOzX0o3raKWZMkVAUMsyMHw+iUtk-4wRwEZc9e3fPg@mail.gmail.com \
    --to=linfish@google.com \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=keiichiw@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=paul.kocialkowski@bootlin.com \
    --cc=sakari.ailus@linux.intel.com \
    --cc=smitha.t@samsung.com \
    --cc=tfiga@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.