hisilicon-ev200 / goke-gk7205v200: bump IMX335 5M Isp_FrameRate 20 → 30#2094
Merged
Conversation
The IMX335 source-based driver (libraries/sensor/hi3516ev200/sony_imx335) initialises 2592x1944 at 12-bit linear with HMAX/VMAX programmed for a 30 fps line time — the init banner literally reads "IMX335_init_5M_ 2592x1944_12bit_linear30 Initial OK!". The stock 5M_imx335.ini for the ev200/gk7205v200 V4 family was pinned at Isp_FrameRate=20, which made cmos_fps_set scale VMAX up to slow the sensor down to 20 fps — leaving ~33% of the sensor's nominal rate on the table at 5M. Verified on real hardware (gk7205v300 silicon, sony_imx335 driver, h.265 VBR 2.6 Mbps wire): Isp_FrameRate=20 (before): VENC = 18 fps wire Isp_FrameRate=30 (after): VENC = 21 fps wire (encoder ceiling) ISP IntRat confirms the sensor now delivers 30 fps and the wire is encoder-bound at 21 fps for h.265 5M @ 2.6 Mbps on this silicon (matches the source comment in majestic src/hisi/sdk.c:2223: "XM's (not in datasheet): 2592 x 1944@21 fps (5M)"). CV500 / gk7205v500 IMX335 INIs are unchanged — those use a different sensor driver (vendor-blob-based, not openhisilicon source) and the 30 fps init isn't guaranteed there. Behaviour-preserving on those platforms; bump can be revisited per-platform after testing. Investigation context: compared OpenIPC gk7205v300 vs XM vendor firmware on gk7205v200 at h.265 VBR 2.6 Mbps 5M. Pipeline is identical on both (ISP STRIPING + VI_OFFLINE_VPSS_ONLINE); the only unexplained gap was the conservative Isp_FrameRate=20 in the INI. After this change the encoder reaches its actual hardware ceiling on V4 family at 5M. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Lifts the stock IMX335 5M sensor INI from
Isp_FrameRate=20toIsp_FrameRate=30for the V4 family (hisilicon-osdrv-hi3516ev200andgoke-osdrv-gk7205v200packages). The underlying sensor driver (libraries/sensor/hi3516ev200/sony_imx335) already initialises 5M at a 30 fps line time — its banner literally reads "IMX335_init_5M_2592x1944_12bit_linear30 Initial OK!". The conservative=20value was leaving ~33% of the sensor's nominal rate on the table.Verified on real hardware (gk7205v300 + IMX335, h.265 VBR @ 2.6 Mbps)
Isp_FrameRate=20(before)Isp_FrameRate=30(after)After the change, the wire is encoder-bound (h.265 4Mbps pixel-rate budget for 5M on this silicon) — matches the historical note in
majestic/src/hisi/sdk.c:2223: "XM's (not in datasheet): 2592 x 1944@21 fps (5M)". ISPIntRatcounter confirms the sensor sustains 30 fps at the new setting with no drops orIspResetevents.Context
Investigated by direct comparison against vendor XM firmware running on a gk7205v200 board at the same h.265 + VBR 2.6 Mbps 5M target. The pipeline shape (ISP STRIPING + VI_OFFLINE_VPSS_ONLINE + VB pool sizes) is identical between vendor and OpenIPC. The remaining 4 fps gap (vendor reaches 25 fps via WDR_2To1_LINE 10-bit mode; OpenIPC linear 12-bit caps at 21 fps) is a separate story — the WDR init path in OpenIPC currently rate-collapses to ~6 fps and needs investigation as a follow-up.
Scope
hisilicon-osdrv-hi3516ev200/files/sensor/config/5M_imx335.ini— V4 Hisilicon, source-based driver, verifiedgoke-osdrv-gk7205v200/files/sensor/config/5M_imx335.ini— V4 Goke, same source, verifiedNot touched (different driver, no hardware test available):
hisilicon-osdrv-hi3516cv500/files/sensor/config/5M_imx335.ini— V3.5, vendor-blob-based IMX335 drivergoke-osdrv-gk7205v500/files/sensor/config/5M_imx335.ini— V5, different SoCBehaviour-preserving on those platforms; per-platform bumps can be revisited after testing.
Test plan
🤖 Generated with Claude Code