[PATCH v11 1/5] media: v4l: Add definition for the Aspeed JPEG format
Jammy Huang
jammy_huang at aspeedtech.com
Wed Dec 7 20:35:20 AEDT 2022
Hi Sakari,
After discussing with Hans, I will send patches on top to update this.
Thanks for your review.
On 2022/12/2 下午 10:23, Sakari Ailus wrote:
> Hi Jammy,
>
> Apologies for a late reply.
>
> On Fri, Oct 28, 2022 at 10:35:50AM +0800, Jammy Huang wrote:
>> This introduces support for the Aspeed JPEG format, where the new frame
>> can refer to previous frame to reduce the amount of compressed data.
>> The concept is similar to I/P frame of video compression. It will
>> compare the new frame with previous one to decide which macroblock's
>> data is changed, and only the changed macroblocks will be compressed.
>>
>> This Aspeed JPEG format is used by the video engine on Aspeed platforms,
>> which is generally adapted for remote KVM.
>>
>> Signed-off-by: Jammy Huang <jammy_huang at aspeedtech.com>
>> ---
>> v11:
>> - no update
>> v10:
>> - no update
>> v9:
>> - Rebase on new kernel
>> v8:
>> - Add decoder information for aspeed-jpeg
>> v7:
>> - Add more information for aspeed-jpeg
>> v6:
>> - Update description for new format, aspeed-jpeg, in Documentation.
>> v5:
>> - no update
>> v4:
>> - new
>> ---
>> .../userspace-api/media/v4l/pixfmt-reserved.rst | 17 +++++++++++++++++
>> drivers/media/v4l2-core/v4l2-ioctl.c | 1 +
>> include/uapi/linux/videodev2.h | 1 +
>> 3 files changed, 19 insertions(+)
>>
>> diff --git a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
>> index 0ff68cd8cf62..73cd99828010 100644
>> --- a/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
>> +++ b/Documentation/userspace-api/media/v4l/pixfmt-reserved.rst
>> @@ -258,6 +258,23 @@ please make a proposal on the linux-media mailing list.
>> and it is used by various multimedia hardware blocks like GPU, display
>> controllers, ISP and video accelerators.
>> It contains four planes for progressive video.
>> + * .. _V4L2-PIX-FMT-AJPG:
>> +
>> + - ``V4L2_PIX_FMT_AJPG``
>> + - 'AJPG'
>> + - ASPEED JPEG format used by the aspeed-video driver on Aspeed platforms,
>> + which is generally adapted for remote KVM.
>> + On each frame compression, I will compare the new frame with previous
>> + one to decide which macroblock's data is changed, and only the changed
>> + macroblocks will be compressed.
>> +
>> + The implementation is based on AST2600 A3 datasheet, revision 0.9, which
>> + is not publicly available. Or you can reference Video stream data format
>> + – ASPEED mode compression of SDK_User_Guide which available on
>> + AspeedTech-BMC/openbmc/releases.
> What does this refer to? If it's a URL, please add a reference as below.
>
> Also please run this on the patches:
>
> $ scripts/checkpatch.pl --strict --max-line-length=80
>
>> +
>> + Decoder's implementation can be found here,
>> + `aspeed_codec <https://github.com/AspeedTech-BMC/aspeed_codec/>`__
>> .. raw:: latex
>>
>> \normalsize
>> diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
>> index fddba75d9074..8cb4b976064e 100644
>> --- a/drivers/media/v4l2-core/v4l2-ioctl.c
>> +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
>> @@ -1497,6 +1497,7 @@ static void v4l_fill_fmtdesc(struct v4l2_fmtdesc *fmt)
>> case V4L2_PIX_FMT_MT21C: descr = "Mediatek Compressed Format"; break;
>> case V4L2_PIX_FMT_QC08C: descr = "QCOM Compressed 8-bit Format"; break;
>> case V4L2_PIX_FMT_QC10C: descr = "QCOM Compressed 10-bit Format"; break;
>> + case V4L2_PIX_FMT_AJPG: descr = "Aspeed JPEG"; break;
>> default:
>> if (fmt->description[0])
>> return;
>> diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
>> index 86cae23cc446..870a7e5ef8ca 100644
>> --- a/include/uapi/linux/videodev2.h
>> +++ b/include/uapi/linux/videodev2.h
>> @@ -775,6 +775,7 @@ struct v4l2_pix_format {
>> #define V4L2_PIX_FMT_HI240 v4l2_fourcc('H', 'I', '2', '4') /* BTTV 8-bit dithered RGB */
>> #define V4L2_PIX_FMT_QC08C v4l2_fourcc('Q', '0', '8', 'C') /* Qualcomm 8-bit compressed */
>> #define V4L2_PIX_FMT_QC10C v4l2_fourcc('Q', '1', '0', 'C') /* Qualcomm 10-bit compressed */
>> +#define V4L2_PIX_FMT_AJPG v4l2_fourcc('A', 'J', 'P', 'G') /* Aspeed JPEG */
>>
>> /* 10bit raw packed, 32 bytes for every 25 pixels, last LSB 6 bits unused */
>> #define V4L2_PIX_FMT_IPU3_SBGGR10 v4l2_fourcc('i', 'p', '3', 'b') /* IPU3 packed 10-bit BGGR bayer */
--
Best Regards
Jammy
More information about the Linux-aspeed
mailing list