From patchwork Fri Oct 28 02:35:50 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jammy Huang X-Patchwork-Id: 12052 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:6687:0:0:0:0:0 with SMTP id l7csp576796wru; Thu, 27 Oct 2022 19:39:34 -0700 (PDT) X-Google-Smtp-Source: AMsMyM7U3DX1WMUkY29207R4eukV040uuZa49hmmnY8bkThh7mo55gaFrBDGC9rn7mMC6ormsJMU X-Received: by 2002:a17:907:847:b0:77f:f489:cc25 with SMTP id ww7-20020a170907084700b0077ff489cc25mr44422350ejb.80.1666924773898; Thu, 27 Oct 2022 19:39:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1666924773; cv=none; d=google.com; s=arc-20160816; b=Pjsijapr8DC13AuwV7dyk5LtpT3uhr2STVWY+pt/HOcnAgbtG31FOzyyMQjO6qJcdH lPpaOEDy0jblPfxA0XZONuLF1UEicdFtjFj9ZL2wuMt0dvWrH1Fb+b9AsXmtbUrjNSjG xViwRF98QxdOwsQTXrOArweXV16TU/EYZmfVrszTEmV0vTNL2AcH1n+Wyu0oZJGOQppo VnM8rxkVxwr2lh3t4wvhMvsvJNFg1oQ1Q99ZfVqr25t9RchM85v3xdQrt0GgCNc59OI1 ASdeVgwFF0hYDx8ed9q9+HUOwRfSc98tPfZ6gqIUnBsqMAq+Ka5D4xROl3fJMJzPnl3a ynHA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:to:from; bh=VqGQSlsq/FfNrbNOhP/qgAG2tyJBpxhPkChdSEjmmpY=; b=uLO/ylH4pIqw80qsQU0LG7scOQMlwCmJaUlqz/Cb283uUhu10K11y/PDRRtcHOEE0p 4yBaYTYu8LCsmxX+X/jFqSsrr0n9gvFRrcjcRLuTcWNjNksSqLDmage+uBS6smeVuZJd ha0dQje/mBMSDChuH/CQjUYjzyWjxNsshthHrSg3zWRn4TMNWaTUCDKR4JiawS4UyP2g 7uRoNBM19L86JE45gw3FVRXbFyOl/rHzOPyXADMjHWiZb3dnbiULynDbkkRVq6Kn7HVu D+PjCqyz9ZYHDZTN+u2W2LAH3+QzIfU/mvWOt7xkTiq1AO6CyKzpg4InAhlttgCsc9tA YDTg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n21-20020a509355000000b00461c41bd7b6si2122775eda.209.2022.10.27.19.39.10; Thu, 27 Oct 2022 19:39:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236551AbiJ1CiL (ORCPT + 99 others); Thu, 27 Oct 2022 22:38:11 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57170 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236362AbiJ1Ch5 (ORCPT ); Thu, 27 Oct 2022 22:37:57 -0400 Received: from twspam01.aspeedtech.com (twspam01.aspeedtech.com [211.20.114.71]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 336E23D58B; Thu, 27 Oct 2022 19:37:53 -0700 (PDT) Received: from mail.aspeedtech.com ([192.168.0.24]) by twspam01.aspeedtech.com with ESMTP id 29S2D5KD054600; Fri, 28 Oct 2022 10:13:05 +0800 (GMT-8) (envelope-from jammy_huang@aspeedtech.com) Received: from JammyHuang-PC.aspeed.com (192.168.2.115) by TWMBX02.aspeed.com (192.168.0.24) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 28 Oct 2022 10:35:58 +0800 From: Jammy Huang To: , , , , , , , , , , , , , , , , , Subject: [PATCH v11 1/5] media: v4l: Add definition for the Aspeed JPEG format Date: Fri, 28 Oct 2022 10:35:50 +0800 Message-ID: <20221028023554.928-2-jammy_huang@aspeedtech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221028023554.928-1-jammy_huang@aspeedtech.com> References: <20221028023554.928-1-jammy_huang@aspeedtech.com> MIME-Version: 1.0 X-Originating-IP: [192.168.2.115] X-ClientProxiedBy: TWMBX02.aspeed.com (192.168.0.24) To TWMBX02.aspeed.com (192.168.0.24) X-DNSRBL: X-MAIL: twspam01.aspeedtech.com 29S2D5KD054600 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1747897312068037412?= X-GMAIL-MSGID: =?utf-8?q?1747897312068037412?= 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 --- 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. + + Decoder's implementation can be found here, + `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 */