mbox series

[v5,0/2] media: venus: Add hierarchical h.264 controls

Message ID 20241022-submit-v5-0-552f0fec8cba@chromium.org
Headers show
Series media: venus: Add hierarchical h.264 controls | expand

Message

Fritz Koenig Oct. 22, 2024, 5:40 p.m. UTC
v5:
- fixed formatting
- included reviwed by for patch 2
- Link to v4: https://lore.kernel.org/r/20241017-submit-v4-0-d852bc7f7fdc@chromium.org

v4:
- addressed feedback from Dikshita
- included reviewed by for patch 1
- Link to v3: https://lore.kernel.org/r/20240814-submit-v3-0-f7d05e3e8560@chromium.org

v3:
- dropped reordering patch
- updated cover letter

v2:
- cover letter
- testing methodology
- Signed-off-by

V4L2 has support for encoding with hierarchical frames using the
V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING* controls. This allows for
specifing frame references needed for temporal scalability. Encoding a
single stream with a single layer allows for the layer to be dropped and
the stream to be decoded without artifacts.

ChromeOS is planning to use this feature for the L1T2 web standard[1].
This allows video conferencing apps to encode once for a clients with
different performance/bandwidth capabilities. As the application is a
real time encoder only P frame support is added.

The ChromeOS test framework ("tast") was used to verify that no
regressions are present. This was done on SC7180 ("trogdor"). These
patches were also run on SC7280, but not with as an extensive test set.

Verification of the added controls was done with a bitstream analyser to
make sure that reference frame management is correct.

[1]: https://www.w3.org/TR/webrtc-svc/#L1T2*

Signed-off-by: Fritz Koenig <frkoenig@chromium.org>
---
Fritz Koenig (2):
      media: venus: Helper function for dynamically updating bitrate
      media: venus: Enable h.264 hierarchical coding

 drivers/media/platform/qcom/venus/core.h       |   4 +
 drivers/media/platform/qcom/venus/venc.c       |  71 +++++++++-----
 drivers/media/platform/qcom/venus/venc_ctrls.c | 126 ++++++++++++++++++++++---
 3 files changed, 164 insertions(+), 37 deletions(-)
---
base-commit: d07b43284ab356daf7ec5ae1858a16c1c7b6adab
change-id: 20240814-submit-05880a074377

Best regards,

Comments

Fritz Koenig Nov. 6, 2024, 3:48 p.m. UTC | #1
Stanimir,

Would it be possible to get this in the 6.13 pull request?

Thanks.

On Tue, Oct 22, 2024 at 10:40 AM Fritz Koenig <frkoenig@chromium.org> wrote:
>
> v5:
> - fixed formatting
> - included reviwed by for patch 2
> - Link to v4: https://lore.kernel.org/r/20241017-submit-v4-0-d852bc7f7fdc@chromium.org
>
> v4:
> - addressed feedback from Dikshita
> - included reviewed by for patch 1
> - Link to v3: https://lore.kernel.org/r/20240814-submit-v3-0-f7d05e3e8560@chromium.org
>
> v3:
> - dropped reordering patch
> - updated cover letter
>
> v2:
> - cover letter
> - testing methodology
> - Signed-off-by
>
> V4L2 has support for encoding with hierarchical frames using the
> V4L2_CID_MPEG_VIDEO_H264_HIERARCHICAL_CODING* controls. This allows for
> specifing frame references needed for temporal scalability. Encoding a
> single stream with a single layer allows for the layer to be dropped and
> the stream to be decoded without artifacts.
>
> ChromeOS is planning to use this feature for the L1T2 web standard[1].
> This allows video conferencing apps to encode once for a clients with
> different performance/bandwidth capabilities. As the application is a
> real time encoder only P frame support is added.
>
> The ChromeOS test framework ("tast") was used to verify that no
> regressions are present. This was done on SC7180 ("trogdor"). These
> patches were also run on SC7280, but not with as an extensive test set.
>
> Verification of the added controls was done with a bitstream analyser to
> make sure that reference frame management is correct.
>
> [1]: https://www.w3.org/TR/webrtc-svc/#L1T2*
>
> Signed-off-by: Fritz Koenig <frkoenig@chromium.org>
> ---
> Fritz Koenig (2):
>       media: venus: Helper function for dynamically updating bitrate
>       media: venus: Enable h.264 hierarchical coding
>
>  drivers/media/platform/qcom/venus/core.h       |   4 +
>  drivers/media/platform/qcom/venus/venc.c       |  71 +++++++++-----
>  drivers/media/platform/qcom/venus/venc_ctrls.c | 126 ++++++++++++++++++++++---
>  3 files changed, 164 insertions(+), 37 deletions(-)
> ---
> base-commit: d07b43284ab356daf7ec5ae1858a16c1c7b6adab
> change-id: 20240814-submit-05880a074377
>
> Best regards,
> --
> Fritz Koenig <frkoenig@chromium.org>
>