| From: |
| Stanimir Varbanov <stanimir.varbanov-AT-linaro.org> |
| To: |
| linux-media-AT-vger.kernel.org |
| Subject: |
| [RFC/WIP v2 0/6] HEIC image encoder |
| Date: |
| Thu, 03 Mar 2022 16:10:04 +0200 |
| Message-ID: |
| <20220303141010.573408-1-stanimir.varbanov@linaro.org> |
| Cc: |
| Hans Verkuil <hverkuil-cisco-AT-xs4all.nl>, Nicolas Dufresne <nicolas-AT-ndufresne.ca>, Stanimir Varbanov <stanimir.varbanov-AT-linaro.org> |
| Archive-link: |
| Article |
Hello,
This is the second version of the RFC for HEIF HEVC image encoder aims to revive the discussion.
Changes since v1 include:
* change the new pixel format to V4L2_PIX_FMT_HEIF_HEVC (1/6).
* created a new HEIF control class and control IDs (2/6).
* add two additional steps in stateful encoder spec (3/6).
* improve the Venus image encoder (4/6 - 6/6).
Comments are welcome.
First version can be found at:
https://lwn.net/ml/linux-media/20210429132833.2802390-1-s...
--
regards,
Stan
Refernces:
[1] https://0xc0000054.github.io/pdn-avif/using-image-grids.h...
[2] https://nokiatech.github.io/heif/technical.html
[3] https://github.com/lclevy/canon_cr3/blob/master/heif.md
[4] https://github.com/nokiatech/heif/blob/master/srcs/api-cp...
[5] https://github.com/strukturag/libheif/blob/master/libheif...
[6] https://androidx.de/androidx/heifwriter/HeifEncoder.html
Stanimir Varbanov (6):
media: Add HEIF HEVC compressed pixel format
v4l: Add HEIF control class and control IDs
docs: dev-encoder: Add additional steps for image encoding
venus: helpers: Add a new helper for buffer processing
venus: hfi: Add hfi property for enable grid
venus: Add HEIC image encoder
.../userspace-api/media/v4l/dev-encoder.rst | 6 +
.../media/v4l/ext-ctrls-heif.rst | 47 +
.../media/v4l/pixfmt-compressed.rst | 12 +
drivers/media/platform/qcom/venus/Makefile | 2 +
drivers/media/platform/qcom/venus/core.h | 29 +
drivers/media/platform/qcom/venus/helpers.c | 21 +
drivers/media/platform/qcom/venus/helpers.h | 1 +
drivers/media/platform/qcom/venus/hfi.c | 1 +
drivers/media/platform/qcom/venus/hfi_cmds.c | 9 +-
.../media/platform/qcom/venus/hfi_helper.h | 5 +
drivers/media/platform/qcom/venus/ienc.c | 1527 +++++++++++++++++
drivers/media/platform/qcom/venus/ienc.h | 14 +
.../media/platform/qcom/venus/ienc_ctrls.c | 99 ++
drivers/media/v4l2-core/v4l2-ctrls-defs.c | 10 +
drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
include/uapi/linux/v4l2-controls.h | 9 +
include/uapi/linux/videodev2.h | 1 +
17 files changed, 1793 insertions(+), 1 deletion(-)
create mode 100644 Documentation/userspace-api/media/v4l/ext-ctrls-heif.rst
create mode 100644 drivers/media/platform/qcom/venus/ienc.c
create mode 100644 drivers/media/platform/qcom/venus/ienc.h
create mode 100644 drivers/media/platform/qcom/venus/ienc_ctrls.c
--
2.25.1