eyelovu 2021-05-21 15:34
浏览 75

HI3518EV300 H265编码视频为什么只是黑白色无法显示彩色?

在使用HI3518EV300SDK进行可视门铃开发中,选择使用的PIXEL_FORMAT_YVU_SEMIPLANAR_420视频输入输出格式使用H265格式进行编码。编码后的文件无论怎么都是显示的黑白颜色。但是使用pqtool的视频流又能看到彩色。只是pq_stream关键部分只有库没有源代码。我查看了SDK中所有的文档,未找到相关问题的解决方案,我也参照PQTOOL中读取的sensor(GC2053)参数修改了参数,也不起作用。还想尝试从数据流里分析下YUV数据里是否有UV色彩分量,但是由于不知道H265数据的具体格式以及是否受数据编码格式SAMPLE_RC_AVBR的影响,无法分析出来。现在我把我初始化里的配置信息贴出来,希望有大神能帮我分析下我无法正常显示彩色的原因,指导下我可以通过修改哪个参数来实现彩色。谢谢!

static ISP_PUB_ATTR_S g_isp_pub_attr = {
#if defined CONFIG_SNS0_SC2231
    {0, 0, 1920, 1080},
    {1920, 1080},
    30,
    BAYER_BGGR,
    WDR_MODE_NONE,
    0,
#elif defined CONFIG_SNS0_GC2053
    {0, 0, 1920, 1080},
    {1920, 1080},
    20,
    BAYER_RGGB,
    WDR_MODE_NONE,
    0,
#else
#error "should define sensor type first"
#endif
};
HI_U16 g_default_ccm[CCM_MATRIX_SIZE] = {
    0x0037, 0x00B7, 0x0012,
    0x0037, 0x00B7, 0x0012,
    0x0037, 0x00B7, 0x0012
};

static SAMPLE_VI_CONFIG_S g_vi_cfg = {
    .astViInfo[0].stDevInfo.ViDev = 0,
    .astViInfo[0].stDevInfo.enWDRMode = WDR_MODE_NONE,
    .astViInfo[0].stPipeInfo.enMastPipeMode = VI_ONLINE_VPSS_ONLINE,
    .astViInfo[0].stPipeInfo.aPipe[0] = 0,
    .astViInfo[0].stPipeInfo.aPipe[1] = -1,
    .astViInfo[0].stPipeInfo.bMultiPipe = HI_FALSE,
    .astViInfo[0].stPipeInfo.bVcNumCfged = HI_FALSE,
    .astViInfo[0].stChnInfo.ViChn = 0,
//    .astViInfo[0].stChnInfo.u32Depth = 0,
    .astViInfo[0].stChnInfo.enPixFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420,
    .astViInfo[0].stChnInfo.enDynamicRange = DYNAMIC_RANGE_SDR8,
    .astViInfo[0].stChnInfo.enVideoFormat = VIDEO_FORMAT_LINEAR,
    .astViInfo[0].stChnInfo.enCompressMode = COMPRESS_MODE_NONE,
    .s32WorkingViNum = 1,
    .as32WorkingViId[0] = 0,
};
static SIZE_S g_st_size = {1920, 1080};
PIC_SIZE_E g_size = PIC_1080P;

static VPSS_GRP_ATTR_S g_vpss_grp_attr = {
    .stFrameRate.s32SrcFrameRate = -1,
    .stFrameRate.s32DstFrameRate = -1,
    .enDynamicRange = DYNAMIC_RANGE_SDR8,
    .enPixelFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420,
    .u32MaxW = 1920,
    .u32MaxH = 1080,
    .bNrEn = HI_TRUE,
    .stNrAttr.enNrType       = VPSS_NR_TYPE_VIDEO,
    .stNrAttr.enCompressMode = COMPRESS_MODE_FRAME,
    .stNrAttr.enNrMotionMode = NR_MOTION_MODE_NORMAL,

};

/* vpss */
static BTK_IOTC_MEDIA_VPSS_CHN_ATTR g_vpss_chn_attr = {
    .chn_enable[0] = HI_TRUE,
    .chn_enable[1] = HI_TRUE,
    .vpss_chn_attr[0].u32Width = 1920,
    .vpss_chn_attr[0].u32Height = 1080,
    .vpss_chn_attr[0].u32Depth = 0,
    .vpss_chn_attr[0].bMirror = HI_FALSE,
    .vpss_chn_attr[0].bFlip = HI_FALSE,
    .vpss_chn_attr[0].enChnMode = VPSS_CHN_MODE_USER,
    .vpss_chn_attr[0].enCompressMode = COMPRESS_MODE_NONE,
    .vpss_chn_attr[0].enDynamicRange = DYNAMIC_RANGE_SDR8,
    .vpss_chn_attr[0].enVideoFormat = VIDEO_FORMAT_LINEAR,
    .vpss_chn_attr[0].enPixelFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420,
    .vpss_chn_attr[0].stFrameRate.s32SrcFrameRate = 25,
    .vpss_chn_attr[0].stFrameRate.s32DstFrameRate = 25,

    .vpss_chn_attr[1].u32Width = 640,
    .vpss_chn_attr[1].u32Height = 360,
    .vpss_chn_attr[1].u32Depth = 1,
    .vpss_chn_attr[1].bMirror = HI_FALSE,
    .vpss_chn_attr[1].bFlip = HI_FALSE,
    .vpss_chn_attr[1].enChnMode = VPSS_CHN_MODE_USER,
    .vpss_chn_attr[1].enCompressMode = COMPRESS_MODE_NONE,
    .vpss_chn_attr[1].enDynamicRange = DYNAMIC_RANGE_SDR8,
    .vpss_chn_attr[1].enVideoFormat = VIDEO_FORMAT_LINEAR,
    .vpss_chn_attr[1].enPixelFormat = PIXEL_FORMAT_YVU_SEMIPLANAR_420,
    .vpss_chn_attr[1].stFrameRate.s32SrcFrameRate = -1,
    .vpss_chn_attr[1].stFrameRate.s32DstFrameRate = -1,
};

static BTK_IOTC_MEDIA_VENC_ATTR g_venc_attr = {
    .venc_chn = 0,
    .type = PT_H265,
    .rc_mode = SAMPLE_RC_AVBR,
    .profile = 0,
    .rcn_ref_share_buf = HI_TRUE,
    .gop_attr.enGopMode = VENC_GOPMODE_NORMALP,//VENC_GOPMODE_SMARTP,
    .gop_attr.stNormalP.s32IPQpDelta = 4
};
 

  • 写回答

0条回答 默认 最新

      报告相同问题?

      悬赏问题

      • ¥15 activity升级到flowable工作流act_ge_bytearray的草稿json数据复制到act_de_model 的model_editor_json的脚本
      • ¥15 cvi使用CreateThread创建线程时,出现存储空间不足无法处理此命令的错误
      • ¥15 求苹果推信imessage批量推信技术
      • ¥15 ubuntu 22.04 系统盘空间不足。隐藏的docker空间占用?(相关搜索:移动硬盘|管理系统)
      • ¥15 利用加权最小二乘法求亚马逊各类商品的价格指标?怎么求?
      • ¥15 c++ word自动化,为什么可用接口是空的?
      • ¥15 Matlab计算100000*100000的矩阵运算问题:
      • ¥50 VB6.0如何识别粘连的不规则的数字图片验证码
      • ¥16 需要完整的这份订单所有的代码,可以加钱
      • ¥30 写一个带界面控制的机房电脑一键开机关机并且实时监控的软件