Message ID | 20241121131904.261230-1-hugues.fruchet@foss.st.com (mailing list archive) |
---|---|
Headers | show |
Series | Add WebP support to hantro decoder | expand |
Hi all, The corresponding GStreamer code has been pushed here (v4l2slwebpdec): https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7939 BR, Hugues. On 11/21/24 14:19, Hugues Fruchet wrote: > Add WebP image decoding support to stateless V4L2 VP8 decoder. > > This have been tested on STM32MP257-EV board using GStreamer. > > Simple basic test: > $> wget https://www.gstatic.com/webp/gallery/1.webp > $> gst-launch-1.0 filesrc location= 1.webp ! typefind ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true > > Slideshow of a set of WebP pictures and WebM video files: > $> wget https://www.gstatic.com/webp/gallery/2.webp > $> wget https://www.gstatic.com/webp/gallery/3.webp > $> wget https://www.gstatic.com/webp/gallery/4.webp > $> wget https://www.gstatic.com/webp/gallery/5.webp > $> wget https://samplemedia.linaro.org/VP8/big_buck_bunny_480p_VP8_VORBIS_25fps_1900K_short.WebM > $> gst-play-1.0 *.webp *.webm *.WebM --wait-on-eos > <hit key ">" to display next file > > > Large WebP image > 16777215 (size > 2^24) > $> gst-launch-1.0 fakesrc num-buffers=1 format=4 do-timestamp=true filltype=3 sizetype=2 sizemax=25165824 blocksize=25165824 ! video/x-raw, format=I420, width=4096, height=3072, framerate=1/1 ! webpenc quality=100 ! filesink location=4096x3072_HQ_random.webp > $> ls -l 4096x3072_HQ_random.webp > [...] 16877404 Nov 20 11:40 4096x3072_HQ_random.webp > $> gst-launch-1.0 filesrc location= 4096x3072_HQ_random.webp blocksize=16876610 ! image/webp, width=1, height=1, framerate=0/1 ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true > > Large WebP image decoding using post-processor is untested because of lack > of hardware support on this platform, nevertheless support is provided in > this serie for further testing on another platform having post-processor > support. > > =========== > = history = > =========== > version 3: > - Fix remarks from Nicolas Dufresne: > - Document constraint about key frame only for WebP > - Fix rebase issue > - Fix typo detected by Diederik de Haas > > version 2: > - Fix remarks from Nicolas Dufresne: > - Use bytesperline helper to compute chroma size > - Introduce a new explicit WEBP frame compressed format > instead of relying on VP8 + WebP flag > - 4K support in both decoder and post-proc > > version 1: > - Initial submission > > Hugues Fruchet (3): > media: uapi: add WebP uAPI > media: verisilicon: add WebP decoding support > media: verisilicon: postproc: 4K support > > .../userspace-api/media/v4l/biblio.rst | 9 +++++++++ > .../media/v4l/pixfmt-compressed.rst | 17 +++++++++++++++++ > drivers/media/platform/verisilicon/hantro.h | 2 ++ > .../media/platform/verisilicon/hantro_g1_regs.h | 3 ++- > .../platform/verisilicon/hantro_g1_vp8_dec.c | 14 ++++++++++++++ > .../platform/verisilicon/hantro_postproc.c | 6 +++++- > .../media/platform/verisilicon/hantro_v4l2.c | 2 ++ > .../platform/verisilicon/stm32mp25_vpu_hw.c | 17 +++++++++++++++-- > drivers/media/v4l2-core/v4l2-ioctl.c | 1 + > include/uapi/linux/videodev2.h | 1 + > 10 files changed, 68 insertions(+), 4 deletions(-) >
On Thu, Nov 21, 2024 at 7:22 AM Hugues Fruchet <hugues.fruchet@foss.st.com> wrote: > > Add WebP image decoding support to stateless V4L2 VP8 decoder. > > This have been tested on STM32MP257-EV board using GStreamer. I want to test this on an i.MX8M Mini. Is there a certain gstreamer version or branch I should use, or is 1.24 sufficient? adam > > Simple basic test: > $> wget https://www.gstatic.com/webp/gallery/1.webp > $> gst-launch-1.0 filesrc location= 1.webp ! typefind ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true > > Slideshow of a set of WebP pictures and WebM video files: > $> wget https://www.gstatic.com/webp/gallery/2.webp > $> wget https://www.gstatic.com/webp/gallery/3.webp > $> wget https://www.gstatic.com/webp/gallery/4.webp > $> wget https://www.gstatic.com/webp/gallery/5.webp > $> wget https://samplemedia.linaro.org/VP8/big_buck_bunny_480p_VP8_VORBIS_25fps_1900K_short.WebM > $> gst-play-1.0 *.webp *.webm *.WebM --wait-on-eos > <hit key ">" to display next file > > > Large WebP image > 16777215 (size > 2^24) > $> gst-launch-1.0 fakesrc num-buffers=1 format=4 do-timestamp=true filltype=3 sizetype=2 sizemax=25165824 blocksize=25165824 ! video/x-raw, format=I420, width=4096, height=3072, framerate=1/1 ! webpenc quality=100 ! filesink location=4096x3072_HQ_random.webp > $> ls -l 4096x3072_HQ_random.webp > [...] 16877404 Nov 20 11:40 4096x3072_HQ_random.webp > $> gst-launch-1.0 filesrc location= 4096x3072_HQ_random.webp blocksize=16876610 ! image/webp, width=1, height=1, framerate=0/1 ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true > > Large WebP image decoding using post-processor is untested because of lack > of hardware support on this platform, nevertheless support is provided in > this serie for further testing on another platform having post-processor > support. > > =========== > = history = > =========== > version 3: > - Fix remarks from Nicolas Dufresne: > - Document constraint about key frame only for WebP > - Fix rebase issue > - Fix typo detected by Diederik de Haas > > version 2: > - Fix remarks from Nicolas Dufresne: > - Use bytesperline helper to compute chroma size > - Introduce a new explicit WEBP frame compressed format > instead of relying on VP8 + WebP flag > - 4K support in both decoder and post-proc > > version 1: > - Initial submission > > Hugues Fruchet (3): > media: uapi: add WebP uAPI > media: verisilicon: add WebP decoding support > media: verisilicon: postproc: 4K support > > .../userspace-api/media/v4l/biblio.rst | 9 +++++++++ > .../media/v4l/pixfmt-compressed.rst | 17 +++++++++++++++++ > drivers/media/platform/verisilicon/hantro.h | 2 ++ > .../media/platform/verisilicon/hantro_g1_regs.h | 3 ++- > .../platform/verisilicon/hantro_g1_vp8_dec.c | 14 ++++++++++++++ > .../platform/verisilicon/hantro_postproc.c | 6 +++++- > .../media/platform/verisilicon/hantro_v4l2.c | 2 ++ > .../platform/verisilicon/stm32mp25_vpu_hw.c | 17 +++++++++++++++-- > drivers/media/v4l2-core/v4l2-ioctl.c | 1 + > include/uapi/linux/videodev2.h | 1 + > 10 files changed, 68 insertions(+), 4 deletions(-) > > -- > 2.25.1 > >
Hi Adam, On 11/24/24 04:09, Adam Ford wrote: > On Thu, Nov 21, 2024 at 7:22 AM Hugues Fruchet > <hugues.fruchet@foss.st.com> wrote: >> >> Add WebP image decoding support to stateless V4L2 VP8 decoder. >> >> This have been tested on STM32MP257-EV board using GStreamer. > > I want to test this on an i.MX8M Mini. Is there a certain gstreamer > version or branch I should use, or is 1.24 sufficient? The corresponding GStreamer code has been pushed here (v4l2slwebpdec): https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7939 BR, Hugues. > > adam >> >> Simple basic test: >> $> wget https://www.gstatic.com/webp/gallery/1.webp >> $> gst-launch-1.0 filesrc location= 1.webp ! typefind ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true >> >> Slideshow of a set of WebP pictures and WebM video files: >> $> wget https://www.gstatic.com/webp/gallery/2.webp >> $> wget https://www.gstatic.com/webp/gallery/3.webp >> $> wget https://www.gstatic.com/webp/gallery/4.webp >> $> wget https://www.gstatic.com/webp/gallery/5.webp >> $> wget https://samplemedia.linaro.org/VP8/big_buck_bunny_480p_VP8_VORBIS_25fps_1900K_short.WebM >> $> gst-play-1.0 *.webp *.webm *.WebM --wait-on-eos >> <hit key ">" to display next file > >> >> Large WebP image > 16777215 (size > 2^24) >> $> gst-launch-1.0 fakesrc num-buffers=1 format=4 do-timestamp=true filltype=3 sizetype=2 sizemax=25165824 blocksize=25165824 ! video/x-raw, format=I420, width=4096, height=3072, framerate=1/1 ! webpenc quality=100 ! filesink location=4096x3072_HQ_random.webp >> $> ls -l 4096x3072_HQ_random.webp >> [...] 16877404 Nov 20 11:40 4096x3072_HQ_random.webp >> $> gst-launch-1.0 filesrc location= 4096x3072_HQ_random.webp blocksize=16876610 ! image/webp, width=1, height=1, framerate=0/1 ! v4l2slwebpdec ! imagefreeze num-buffers=20 ! waylandsink fullscreen=true >> >> Large WebP image decoding using post-processor is untested because of lack >> of hardware support on this platform, nevertheless support is provided in >> this serie for further testing on another platform having post-processor >> support. >> >> =========== >> = history = >> =========== >> version 3: >> - Fix remarks from Nicolas Dufresne: >> - Document constraint about key frame only for WebP >> - Fix rebase issue >> - Fix typo detected by Diederik de Haas >> >> version 2: >> - Fix remarks from Nicolas Dufresne: >> - Use bytesperline helper to compute chroma size >> - Introduce a new explicit WEBP frame compressed format >> instead of relying on VP8 + WebP flag >> - 4K support in both decoder and post-proc >> >> version 1: >> - Initial submission >> >> Hugues Fruchet (3): >> media: uapi: add WebP uAPI >> media: verisilicon: add WebP decoding support >> media: verisilicon: postproc: 4K support >> >> .../userspace-api/media/v4l/biblio.rst | 9 +++++++++ >> .../media/v4l/pixfmt-compressed.rst | 17 +++++++++++++++++ >> drivers/media/platform/verisilicon/hantro.h | 2 ++ >> .../media/platform/verisilicon/hantro_g1_regs.h | 3 ++- >> .../platform/verisilicon/hantro_g1_vp8_dec.c | 14 ++++++++++++++ >> .../platform/verisilicon/hantro_postproc.c | 6 +++++- >> .../media/platform/verisilicon/hantro_v4l2.c | 2 ++ >> .../platform/verisilicon/stm32mp25_vpu_hw.c | 17 +++++++++++++++-- >> drivers/media/v4l2-core/v4l2-ioctl.c | 1 + >> include/uapi/linux/videodev2.h | 1 + >> 10 files changed, 68 insertions(+), 4 deletions(-) >> >> -- >> 2.25.1 >> >>