MC3302_SDK_V1.1.9_202507281.../media/sample/modules/vpu/vpu.lua

936 lines
17 KiB
Lua
Raw Normal View History

2025-11-11 04:08:31 +00:00
-----------------------------------
-- some enum or constat values
VPU_VOMODE_BLK = 0 -- 宏块格式 | [ ]
VPU_VOMODE_SCAN = 1 -- 光栅格式(NV12) | [ ]
VPU_VOMODE_TILE192 = 2 -- Tile压缩192Byte | [ ]
VPU_VOMODE_TILE224 = 3 -- Tile压缩224Byte | [ ]
VPU_VOMODE_TILE256 = 4 -- Tile压缩256Byte | [ ]
VPU_VOMODE_RGB888 = 5 -- RGB888 | [ ]
VPU_VOMODE_ARGB888 = 5 -- ARGB888 | [ ]
VPU_VOMODE_YUYV = 6 -- YUYV(YUV2) | [ ]
VPU_VOMODE_RRGGBB = 7 -- RRGGBB | [ ]
VPU_VOMODE_NV16 = 10 -- NV16 | [ ]
VPU_VOMODE_Y = 11 -- Y | [ ]
VPU_VOMODE_UYVY = 12 -- UYVY | [ ]
VPU_VOMODE_YU12 = 13 -- YU12 | [ ]
VPU_VOMODE_RGB = 14 -- RGB | [ ]
VPU_VOMODE_BAYER_RAW = 15 -- BAYER_RAW | [ ]
VPU_VOMODE_10BIT_NV12 = 16 -- yuv420 10bit for 2dlut | [ ]
VPU_MODE_ISP_ONLINE = 0
VPU_MODE_DDR_OFFLINE = 1
VPU_MODE_2DLUT_OFFLINE = 2
VPU_MODE_2DLUT_ONLINE = 3
VPU_MODE_MAX_NUM = 4
VPU_MODE_DISABLE = 0xFFFF
g_vi_width = 3840
g_vi_height = 2160
vpu = {
bgm = {
group = {
ycmean_en = 0,
ycmean_ds = 0,
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
bgm_enable = 1,
cpy_enable = 0,
sad_enable = 0,
bgm_ds = 8,
chn_max_size = {
u32Width = 1920,
u32Height = 1088,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
bufnum = 0,
max_stride = 0,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
stride = 0,
offset = 0,
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
}
},
ycmean = {
group = {
ycmean_en = 1,
ycmean_ds = 8,
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
bgm_enable = 1,
cpy_enable = 0,
sad_enable = 0,
bgm_ds = 8,
chn_max_size = {
u32Width = 1920,
u32Height = 1088,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
bufnum = 0,
max_stride = 0,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
stride = 0,
offset = 0,
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
}
},
cpy = {
group = {
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
bgm_enable = 0,
cpy_enable = 1,
sad_enable = 0,
bgm_ds = 0,
chn_max_size = {
u32Width = 1920,
u32Height = 1088,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
}
},
sad = {
group = {
vi_max_size = {
u32Width = 3840,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
bgm_enable = 1,
cpy_enable = 0,
sad_enable = 1,
bgm_ds = 8,
chn_max_size = {
u32Width = 1920,
u32Height = 1088,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
}
},
multichn = {
group = {
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 4096,
u32Height = 2160,
},
out_mode = VPU_VOMODE_TILE256,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_TILE256,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_TILE256,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_TILE256,
},
[2] = {
info = {
chn_max_size = {
u32Width = 1280,
u32Height = 1280,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1024,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1024,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
},
[4] = {
info = {
chn_max_size = {
u32Width = 1024,
u32Height = 1024,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3138,
},
config = {
vpu_chn_size = {
u32Width = 720,
u32Height = 480,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
}
},
ldc = {
group = {
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 1920,
u32Height = 1088,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
}
},
ldc = {
bEnable = 1,
centerX = 1500,
centerY = 800,
distortionRatio = 300,
}
},
ai = {
group = {
vi_max_size = {
u32Width = 4096,
u32Height = 2160,
}
},
channels = {
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1088,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
}
},
rgb_pre = {
Enable = 1,
MeansR = 255,
MeansG = 0,
MeansB = 0,
Gain = 100,
},
apc = {
Enable = 1,
Mergesel = 1,
PGain = 128,
NGain = 128,
DetailPGain = 0,
DetailNGain = 0,
DetailThL = 0,
DetailThH = 0,
DetailFilterIdx = 0,
DetailLutIdx = 0,
EdgePGain = 0,
EdgeNGain = 0,
EdgeThL = 0,
EdgeThH = 0,
EdgeFilterIdx = 0,
EdgeLutIdx = 0,
},
crop = {
crop_en = 1,
area = {
u32X = 640,
u32Y = 320,
u32Width = 2560,
u32Height = 1440
}
}
},
lut2d = {
group = {
vi_max_size = {
u32Width = 2560,
u32Height = 1080,
},
vimode = VPU_MODE_2DLUT_OFFLINE,
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 3840,
u32Height = 2160,
},
out_mode = VPU_VOMODE_TILE192,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_TILE192,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_TILE224,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_TILE224,
},
[2] = {
info = {
chn_max_size = {
u32Width = 1280,
u32Height = 1280,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1280,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
},
},
lutattr = {
vi_size = {
u32Width = 2560,
u32Height = 1080,
},
vo_size = {
u32Width = 2560,
u32Height = 1080,
},
vomode = VPU_VOMODE_SCAN,
crop = {
crop_en = 0,
u32X = 256,
u32Y = 128,
u32Width = 1280,
u32Height = 720,
},
},
test_param = {
duration = 4000000, -- in ms
interval = 30, -- in ms
lutfile = "rsc/lut_2560x1080.bin",
yuvfile = "rsc/2DLutIn_P10.yuv",
},
},
pxp = {
group = {
ycmean_en = 1,
ycmean_ds = 8,
vi_max_size = {
u32Width = 3840,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
bgm_enable = 0,
cpy_enable = 0,
sad_enable = 0,
bgm_ds = 0,
chn_max_size = {
u32Width = 4096,
u32Height = 2160,
},
out_mode = VPU_VOMODE_TILE192,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_TILE192,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_TILE224,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_TILE224,
},
[2] = {
info = {
chn_max_size = {
u32Width = 1280,
u32Height = 1280,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1280,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
},
},
test_param = {
duration = 4000000, -- in ms
interval = 30, -- in ms
src = {
width = 3840,
height = 2160,
mode = VPU_VOMODE_NV16,
filename = "rsc/fireworks_3840x2160_nv16.yuv",
}
}
},
tile = {
group = {
vi_max_size = {
u32Width = 3840,
u32Height = 2160,
}
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 4096,
u32Height = 2160,
},
out_mode = VPU_VOMODE_TILE192,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_TILE192,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_TILE192,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1080,
u32Height = 768,
},
depth = 1
},
vomode = VPU_VOMODE_TILE192,
},
},
test_param = {
src = {
width = 3840,
height = 2160,
mode = VPU_VOMODE_NV16,
filename = "res/fireworks_3840x2160_nv16.yuv",
}
}
},
isp = {
group = {
vi_max_size = {
u32Width = g_vi_width,
u32Height = g_vi_height,
},
vimode = VPU_MODE_ISP_ONLINE,
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 3840,
u32Height = 2160,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[2] = {
info = {
chn_max_size = {
u32Width = 1280,
u32Height = 1280,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1280,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
framerate = {
frame_count = 10,
frame_time = 1,
},
vomode = VPU_VOMODE_RGB888,
},
},
isp = {
lf_file = "rsc/lf_8m_lf_0x005e62fc.raw",
sf_file = "rsc/sf_8m_sf_0x00593941.raw",
--cmd = "echo colorbar_30 > /proc/driver/isp;devmem 0x2d000090 32 0x80a8ffff",
cmd = "echo offline_sf_0_0x%x_0x00600000_1 > /proc/driver/isp;echo offline_lf_0_0x%x_0x00600000_1 > /proc/driver/isp;echo offline_fps_30 > /proc/driver/isp;echo offline_start > /proc/driver/isp",
},
},
dual = {
group = {
vi_max_size = {
u32Width = 4096,
u32Height = 1520,
}
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 4096,
u32Height = 2160,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 4096,
u32Height = 1520,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
},
test_param = {
src = {
width = 2688,
height = 1520,
mode = VPU_VOMODE_NV12,
left_yuv = "rsc/merge_offline/2688x1520_nv12_l.yuv",
right_yuv = "rsc/merge_offline/2688x1520_nv12_r.yuv",
}
}
},
pxp2 = {
groups = {
[0] = {
group = {
vi_max_size = {
u32Width = g_vi_width,
u32Height = g_vi_height,
},
},
channels = {
[0] = {
info = {
chn_max_size = {
u32Width = 3840,
u32Height = 2160,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 3840,
u32Height = 2160,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[1] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_SCAN,
support_mode = 3167,
},
config = {
vpu_chn_size = {
u32Width = 1280,
u32Height = 720,
},
depth = 1
},
vomode = VPU_VOMODE_SCAN,
},
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 1920,
u32Height = 1080,
},
depth = 1
},
framerate = {
frame_count = 10,
frame_time = 1,
},
vomode = VPU_VOMODE_RGB888,
},
},
},
[1] = {
group = {
vi_max_size = {
u32Width = 768,
u32Height = 1024,
},
},
channels = {
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 768,
u32Height = 1024,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
},
},
},
[2] = {
group = {
vi_max_size = {
u32Width = 768,
u32Height = 1024,
},
},
channels = {
[3] = {
info = {
chn_max_size = {
u32Width = 2048,
u32Height = 2048,
},
out_mode = VPU_VOMODE_RGB888,
support_mode = 162,
},
config = {
vpu_chn_size = {
u32Width = 768,
u32Height = 1024,
},
depth = 1
},
vomode = VPU_VOMODE_RGB888,
},
},
},
},
isp = {
lf_file = "rsc/lf_8m_lf_0x005e62fc.raw",
sf_file = "rsc/sf_8m_sf_0x00593941.raw",
--cmd = "echo colorbar_30 > /proc/driver/isp;devmem 0x2d000090 32 0x80a8ffff",
cmd = "echo offline_sf_0_0x%x_0x00600000_1 > /proc/driver/isp;echo offline_lf_0_0x%x_0x00600000_1 > /proc/driver/isp;echo offline_fps_30 > /proc/driver/isp;echo offline_start > /proc/driver/isp",
},
},
}
vpu.testcase = "pxp2"