CV181X/CV182X/CV180X Multimedia Skill
Instructions
Step 1: Confirm the missing context before giving exact API guidance
When the user asks about exact API behavior, limits, struct fields, or error diagnosis, first confirm the available context:
- Target chip or board model
- SDK version or SDK source tree path
- Relevant code snippet, pipeline stage, or runtime log
If required context is missing:
- State that the answer is limited or provisional
- Ask for the specific missing artifact needed to verify the claim
- Do not present SDK-version-specific behavior as universal unless it is confirmed in the available references
Step 2: Prefer authoritative sources
Use the source order already defined in this skill: SDK headers first, SDK samples second, external material only if it is verified against the headers or samples
Complete Reference Index
All 18 reference files with searchable keywords:
| File |
Keywords |
Key APIs |
references/vi.md |
camera, sensor, ISP, MIPI, DEV, PIPE, CHN, video input |
CVI_VI_*, CVI_ISP_*, CVI_MIPI_* |
references/vpss.md |
scaling, crop, resize, rotate, cvtColor, format conversion, group, channel |
CVI_VPSS_*, SendFrame, GetChnFrame |
references/venc.md |
encode, H.264, H.265, HEVC, JPEG, MJPEG, bitrate, GOP |
CVI_VENC_*, SendFrame, GetStream |
references/vdec.md |
decode, JPEG decode, H.264 decode, bitstream |
CVI_VDEC_*, SendStream, GetFrame |
references/vb.md |
buffer pool, VB, memory, block, pool sizing, CommonPool |
CVI_VB_*, GetBlock, ReleaseBlock |
references/sys.md |
bind, unbind, init, exit, VI_VPSS_MODE, VPSS_MODE |
CVI_SYS_*, Bind, SetVIVPSSMode |
references/vo.md |
display, output, LCD, HDMI, layer, framebuffer |
CVI_VO_*, SendFrame, ChnShow |
references/rgn.md |
OSD, overlay, region, text, graphics, privacy mask |
CVI_RGN_*, AttachToChn, SetBitMap |
references/gdc.md |
distortion, fisheye, LDC, rotation, mesh, warp |
CVI_GDC_*, AddCorrectionTask |
references/audio.md |
audio, microphone, speaker, AI, AO, AENC, ADEC, VQE |
CVI_AI_*, CVI_AO_*, CVI_AENC_* |
references/ion.md |
ION, DMA, cache, flush, invalidate, physical address |
CVI_SYS_IonAlloc, IonFlushCache |
references/debug.md |
/proc, log, debug, status, diagnostics |
/proc/cvitek/*, log level |
references/troubleshooting.md |
error, ERR_VPSS_NOBUF, ERR_VB_NOBUF, failure, fix |
error codes, solutions |
references/binding-cookbook.md |
concurrent, dual pipeline, online, offline, scenario |
multi-scenario design |
references/integration-guide.md |
integration, cross-module, ownership, lifecycle |
system design rules |
references/platform.md |
SDK, path, pixel format, CV181X, CV182X, CV180X |
platform differences |
references/overview.md |
architecture, workflow, pipeline, introduction |
system overview |
references/scenarios.md |
example, surveillance, doorbell, NVR, application |
complete examples |
Quick Lookup
By Task
| Task |
Reference |
| Camera capture |
references/vi.md |
| Video scaling/crop/rotate |
references/vpss.md |
| H.264/H.265/JPEG encode |
references/venc.md |
| JPEG/H.264 decode |
references/vdec.md |
| Buffer pool planning |
references/vb.md |
| Module binding |
references/sys.md |
| Video display |
references/vo.md |
| OSD/overlay |
references/rgn.md |
| Fisheye correction |
references/gdc.md |
| Audio capture/playback |
references/audio.md |
| DMA memory |
references/ion.md |
| Debugging |
references/debug.md |
| Error diagnosis |
references/troubleshooting.md |
By Error Code
| Error |
Reference |
ERR_VPSS_NOBUF (0xc006800e) |
references/troubleshooting.md |
ERR_VB_NOBUF |
references/vb.md |
ERR_VENC_NOBUF |
references/venc.md |
ERR_VI_NOTREADY |
references/vi.md |
| Bind failure |
references/sys.md |
By Pipeline
| Pipeline |
References |
| Camera -> VPSS (online) |
vi.md, vpss.md, sys.md |
| File -> VPSS (offline) |
vpss.md, vb.md |
| JPEG decode -> VPSS |
vdec.md, vpss.md |
| VPSS -> VENC |
venc.md, sys.md |
| Dual pipeline |
references/binding-cookbook.md |
Private Operating Procedures
1. Authoritative Source Order
- SDK headers in
cvi_mpi/include/
- SDK samples in
cvi_mpi/sample/
- Never: external repos without header verification
2. VPSS Input Ownership
- VPSS group for ONE input type: ISP or MEM
- Never switch between Bind and SendFrame at runtime
- Concurrent ISP + MEM: separate groups and VB pools
3. VI-VPSS Mode Selection
| Mode |
Use Case |
VI_OFFLINE_VPSS_ONLINE |
Camera pipeline (recommended) |
VI_OFFLINE_VPSS_OFFLINE |
Maximum flexibility |
VI_ONLINE_VPSS_ONLINE |
Lowest latency |
4. Binding Requirements
- Control plane:
CVI_SYS_Bind establishes relationship
- Data plane: Mode setting determines data flow
- Binding required even in ISP direct mode
- Unbind before stop; bind after start
5. Camera Readiness
- Warm up pipeline after start
- Discard first few frames before capture
6. VENC SendFrame Memory
- Must use VB pool, not raw ION
- Use
CVI_VB_GetBlock(), set frame.u32PoolId
7. Diagnostics
On failure: /proc/cvitek/{sys,vb,vi,vpss,vdec,venc}
Module Init Order
1. CVI_VB_SetConfig + CVI_VB_Init
2. CVI_SYS_Init
3. CVI_SYS_SetVIVPSSMode
4. CVI_SYS_SetVPSSModeEx
5. VI: sensor -> mipi -> dev -> pipe -> isp -> chn
6. VPSS: CreateGrp -> SetChnAttr -> EnableChn -> StartGrp
7. CVI_SYS_Bind
8. Warmup
VPSS Mode Reference
VPSS_MODE_DUAL
DEV0 = VPSS_INPUT_MEM -> Offline (SendFrame)
DEV1 = VPSS_INPUT_ISP -> Camera (Bind)
VpssDev Selection
| Input |
VpssDev |
| Camera (ISP) |
1 |
| File/Memory |
0 |
VB Pool Sizing
Size = COMMON_GetPicBufferSize(w, h, fmt, DATA_BITWIDTH_8, COMPRESS_MODE_NONE, 0)
Counts: Camera=4-6, VPSS=3-4, Encode=2-3, Decode=4-6
Debug Commands
cat /proc/cvitek/sys | grep -A 10 "BIND RELATION"
cat /proc/cvitek/vb | grep -A 20 "PoolId"
cat /proc/cvitek/vi | grep -A 5 "VI CHN STATUS"
cat /proc/cvitek/vpss | grep -A 20 "WORK STATUS"
echo "VI=7" > /proc/cvitek/log
Version: 2.4.0 | Updated: 2026-01-20 | Platform: SG200X
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: seeed-studio-ai-skills-cv181x-media3description: CV181X/CV182X/CV180X Multimedia Skill4---56# CV181X/CV182X/CV180X Multimedia Skill78## Instructions910### Step 1: Confirm the missing context before giving exact API guidance1112When the user asks about exact API behavior, limits, struct fields, or error diagnosis, first confirm the available context:13- Target chip or board model14- SDK version or SDK source tree path15- Relevant code snippet, pipeline stage, or runtime log1617If required context is missing:18- State that the answer is limited or provisional19- Ask for the specific missing artifact needed to verify the claim20- Do not present SDK-version-specific behavior as universal unless it is confirmed in the available references2122### Step 2: Prefer authoritative sources2324Use the source order already defined in this skill: SDK headers first, SDK samples second, external material only if it is verified against the headers or samples2526## Complete Reference Index2728All 18 reference files with searchable keywords:2930| File | Keywords | Key APIs |31|------|----------|----------|32| `references/vi.md` | camera, sensor, ISP, MIPI, DEV, PIPE, CHN, video input | `CVI_VI_*`, `CVI_ISP_*`, `CVI_MIPI_*` |33| `references/vpss.md` | scaling, crop, resize, rotate, cvtColor, format conversion, group, channel | `CVI_VPSS_*`, `SendFrame`, `GetChnFrame` |34| `references/venc.md` | encode, H.264, H.265, HEVC, JPEG, MJPEG, bitrate, GOP | `CVI_VENC_*`, `SendFrame`, `GetStream` |35| `references/vdec.md` | decode, JPEG decode, H.264 decode, bitstream | `CVI_VDEC_*`, `SendStream`, `GetFrame` |36| `references/vb.md` | buffer pool, VB, memory, block, pool sizing, CommonPool | `CVI_VB_*`, `GetBlock`, `ReleaseBlock` |37| `references/sys.md` | bind, unbind, init, exit, VI_VPSS_MODE, VPSS_MODE | `CVI_SYS_*`, `Bind`, `SetVIVPSSMode` |38| `references/vo.md` | display, output, LCD, HDMI, layer, framebuffer | `CVI_VO_*`, `SendFrame`, `ChnShow` |39| `references/rgn.md` | OSD, overlay, region, text, graphics, privacy mask | `CVI_RGN_*`, `AttachToChn`, `SetBitMap` |40| `references/gdc.md` | distortion, fisheye, LDC, rotation, mesh, warp | `CVI_GDC_*`, `AddCorrectionTask` |41| `references/audio.md` | audio, microphone, speaker, AI, AO, AENC, ADEC, VQE | `CVI_AI_*`, `CVI_AO_*`, `CVI_AENC_*` |42| `references/ion.md` | ION, DMA, cache, flush, invalidate, physical address | `CVI_SYS_IonAlloc`, `IonFlushCache` |43| `references/debug.md` | /proc, log, debug, status, diagnostics | `/proc/cvitek/*`, log level |44| `references/troubleshooting.md` | error, ERR_VPSS_NOBUF, ERR_VB_NOBUF, failure, fix | error codes, solutions |45| `references/binding-cookbook.md` | concurrent, dual pipeline, online, offline, scenario | multi-scenario design |46| `references/integration-guide.md` | integration, cross-module, ownership, lifecycle | system design rules |47| `references/platform.md` | SDK, path, pixel format, CV181X, CV182X, CV180X | platform differences |48| `references/overview.md` | architecture, workflow, pipeline, introduction | system overview |49| `references/scenarios.md` | example, surveillance, doorbell, NVR, application | complete examples |5051---5253## Quick Lookup5455### By Task5657| Task | Reference |58|------|-----------|59| Camera capture | `references/vi.md` |60| Video scaling/crop/rotate | `references/vpss.md` |61| H.264/H.265/JPEG encode | `references/venc.md` |62| JPEG/H.264 decode | `references/vdec.md` |63| Buffer pool planning | `references/vb.md` |64| Module binding | `references/sys.md` |65| Video display | `references/vo.md` |66| OSD/overlay | `references/rgn.md` |67| Fisheye correction | `references/gdc.md` |68| Audio capture/playback | `references/audio.md` |69| DMA memory | `references/ion.md` |70| Debugging | `references/debug.md` |71| Error diagnosis | `references/troubleshooting.md` |7273### By Error Code7475| Error | Reference |76|-------|-----------|77| `ERR_VPSS_NOBUF (0xc006800e)` | `references/troubleshooting.md` |78| `ERR_VB_NOBUF` | `references/vb.md` |79| `ERR_VENC_NOBUF` | `references/venc.md` |80| `ERR_VI_NOTREADY` | `references/vi.md` |81| Bind failure | `references/sys.md` |8283### By Pipeline8485| Pipeline | References |86|----------|------------|87| Camera -> VPSS (online) | `vi.md`, `vpss.md`, `sys.md` |88| File -> VPSS (offline) | `vpss.md`, `vb.md` |89| JPEG decode -> VPSS | `vdec.md`, `vpss.md` |90| VPSS -> VENC | `venc.md`, `sys.md` |91| Dual pipeline | `references/binding-cookbook.md` |9293---9495## Private Operating Procedures9697### 1. Authoritative Source Order981. SDK headers in `cvi_mpi/include/`992. SDK samples in `cvi_mpi/sample/`1003. Never: external repos without header verification101102### 2. VPSS Input Ownership103- VPSS group for ONE input type: ISP or MEM104- Never switch between Bind and SendFrame at runtime105- Concurrent ISP + MEM: separate groups and VB pools106107### 3. VI-VPSS Mode Selection108109| Mode | Use Case |110|------|----------|111| `VI_OFFLINE_VPSS_ONLINE` | Camera pipeline (recommended) |112| `VI_OFFLINE_VPSS_OFFLINE` | Maximum flexibility |113| `VI_ONLINE_VPSS_ONLINE` | Lowest latency |114115### 4. Binding Requirements116- Control plane: `CVI_SYS_Bind` establishes relationship117- Data plane: Mode setting determines data flow118- Binding required even in ISP direct mode119- Unbind before stop; bind after start120121### 5. Camera Readiness122- Warm up pipeline after start123- Discard first few frames before capture124125### 6. VENC SendFrame Memory126- Must use VB pool, not raw ION127- Use `CVI_VB_GetBlock()`, set `frame.u32PoolId`128129### 7. Diagnostics130On failure: `/proc/cvitek/{sys,vb,vi,vpss,vdec,venc}`131132---133134## Module Init Order135136```text1371. CVI_VB_SetConfig + CVI_VB_Init1382. CVI_SYS_Init1393. CVI_SYS_SetVIVPSSMode1404. CVI_SYS_SetVPSSModeEx1415. VI: sensor -> mipi -> dev -> pipe -> isp -> chn1426. VPSS: CreateGrp -> SetChnAttr -> EnableChn -> StartGrp1437. CVI_SYS_Bind1448. Warmup145```146147---148149## VPSS Mode Reference150151### VPSS_MODE_DUAL152```text153DEV0 = VPSS_INPUT_MEM -> Offline (SendFrame)154DEV1 = VPSS_INPUT_ISP -> Camera (Bind)155```156157### VpssDev Selection158| Input | VpssDev |159|-------|---------|160| Camera (ISP) | 1 |161| File/Memory | 0 |162163---164165## VB Pool Sizing166167```text168Size = COMMON_GetPicBufferSize(w, h, fmt, DATA_BITWIDTH_8, COMPRESS_MODE_NONE, 0)169170Counts: Camera=4-6, VPSS=3-4, Encode=2-3, Decode=4-6171```172173---174175## Debug Commands176177```bash178cat /proc/cvitek/sys | grep -A 10 "BIND RELATION"179cat /proc/cvitek/vb | grep -A 20 "PoolId"180cat /proc/cvitek/vi | grep -A 5 "VI CHN STATUS"181cat /proc/cvitek/vpss | grep -A 20 "WORK STATUS"182echo "VI=7" > /proc/cvitek/log183```184185---186187**Version**: 2.4.0 | **Updated**: 2026-01-20 | **Platform**: SG200X188189---190> Converted and distributed by [TomeVault](https://tomevault.io/claim/seeed-studio) — claim your Tome and manage your conversions.191<!-- tomevault:4.0:skill_md:2026-04-13 -->