godslucky

godslucky

0个粉丝

3

问答

0

专栏

0

资料

godslucky  发布于  2024-10-22 09:37:40
采纳率 0%
3个问答
440

海思板子mpp怎么在vi阶段改变视频数据尺寸

悬赏金¥ 10
已结题
   

sensor的4k分辨率太大了,算法处理不来,想缩小数据尺寸,一般是怎么处理的? 看了文档,是不是通过bas在vi进行缩放,但实际尝试的时候set bas attr会报错如下:

[sample_comm_vi_start_dev]-1030: vi set bas attr failed with 0xa0108007!
[sample_comm_vi_start_vi]-1435: start dev failed!
program exit abnormally!

错误码查阅:0xa0108007 OT_ERR_VI_ILLEGAL_PARAM 视频输入参数设置无效

我用的代码是sample里的sample_vio改的,涉及vi缩放的部分如下:

#define VB_RAW_CNT_NONE     0
#define VB_LINEAR_RAW_CNT   5
#define VB_WDR_RAW_CNT      8
#define VB_MULTI_RAW_CNT    15
#define VB_YUV_ROUTE_CNT    10
#define VB_DOUBLE_YUV_CNT   15
#define VB_MULTI_YUV_CNT    30

    // sys init
    ot_vi_vpss_mode_type mode_type = OT_VI_OFFLINE_VPSS_OFFLINE;
    ot_vi_video_mode video_mode = OT_VI_VIDEO_MODE_ADVANCED;
    ret = sample_vio_sys_init(mode_type, video_mode, VB_YUV_ROUTE_CNT, VB_LINEAR_RAW_CNT);
    if (ret != TD_SUCCESS) {
        goto sys_init_failed;
    }

    // vi
    ot_vi_pipe vi_pipe = 0;
    const ot_vi_chn vi_chn = 0;
    sample_vi_cfg vi_cfg;
    sample_sns_type sns_type = SENSOR0_TYPE;
    ot_size in_size;
    sample_comm_vi_get_size_by_sns_type(sns_type, &in_size);
    printf("%d %d\n", in_size.width, in_size.height);
    in_size.width = 1920;
    in_size.height = 1080;
    sample_comm_vi_get_default_vi_cfg(sns_type, &vi_cfg);
    vi_cfg.sns_info.bus_id = 5; /* i2c5 */
    vi_cfg.dev_info.bas_attr.enable = TD_TURE;
    vi_cfg.dev_info.bas_attr.scale_attr.out_size = in_size;
    vi_cfg.dev_info.bas_attr.rephase_attr.hor_rephase_mode = OT_VI_REPHASE_MODE_NONE;
    vi_cfg.dev_info.bas_attr.rephase_attr.ver_rephase_mode = OT_VI_REPHASE_MODE_NONE;
    // vi_cfg.pipe_info[0].pipe_attr.size = in_size;
    // vi_cfg.pipe_info[0].chn_info[0].chn_attr.size = in_size;
    ret = sample_comm_vi_start_vi(&vi_cfg);
    if (ret != TD_SUCCESS) {
        goto start_vi_failed;
    }

文档里有如下信息: 【注意事项】 ● WDR模式下不支持BAS。 ● 前端输入YUV数据,则不支持BAS。 ● 前端RAW数据位宽大于14bit不支持BAS。 但我这没有用WDR,前端也是raw数据。

我来回答
回答11个
时间排序
认可量排序

好久不见

0个粉丝

1

问答

0

专栏

0

资料

好久不见 2024-10-22 11:19:33
认可0

试试裁剪怎么样

godslucky
godslucky   回复   好久不见  2024-10-22 12:03:58
0

裁剪是取部分像素点是吗 有点另辟蹊径了属于是

好久不见
好久不见   回复   godslucky  2024-10-22 13:45:29
0

哈哈,是的

好久不见

0个粉丝

1

问答

0

专栏

0

资料

好久不见 2024-10-22 14:30:14
认可3

换个方式嘛,不一定要在vi缩放,你在vpss可以处理的,从vpss拿出来做算法处理

godslucky
godslucky   回复   好久不见  2024-10-22 15:00:32
0

感谢 我看文档说vi有缩放功能 可能还是vpss去处理比较常规 vpss取完了算法后直接sendframe到vo可以吗

好久不见
好久不见   回复   godslucky  2024-10-22 15:06:44
0

HI_MPI_VO_SendFrame

好久不见

0个粉丝

1

问答

0

专栏

0

资料

好久不见 2024-10-22 14:34:51
认可1

leo

6个粉丝

0

问答

0

专栏

6

资料

leo 2024-10-22 14:45:48
认可0

VI是可以做 down scale 的

UncleRoderick

32个粉丝

14

问答

1

专栏

14

资料

UncleRoderick 2024-10-22 22:51:08
认可0

直接设置VPSS通道大小即可

Louis.杨

0个粉丝

0

问答

0

专栏

0

资料

Louis.杨 2024-10-29 21:19:51
认可0

VI里面也可以实现,但是不建议
建议在VPSS里面做,设置不同的通道对应不同分辨率
可以多通道多分辨率输出

tao4091

0个粉丝

0

问答

0

专栏

1

资料

tao4091 2024-10-30 15:03:38
认可0

确认前端 RAW 数据位宽:确保在 14bit 以内。
使用统一分辨率:在 vi_cfg.dev_info.bas_attr.scale_attr.out_size、vi_cfg.pipe_info[0].pipe_attr.size 和 vi_cfg.pipe_info[0].chn_info[0].chn_attr.size 中统一分辨率设置,确保所有相关属性值一致。
确认BAS支持:检查设备的配置限制(可能需要参考硬件手册或开发板的支持文档),以确认当前模式下支持 BAS 缩放。

或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区