首页问答详情

3516A HI_MPI_VPSS_GetChnFrame获取视频帧信息

 
windyhll
windyhll  发布于  2017-10-16 16:25:15
采纳率 0%
2个问答
hi
          海思输入是HMDI输入720P,绑定vi VPSS,然后通过HI_MPI_VPSS_GetChnFrame获取一帧图像,之后调用HI_MPI_SYS_Mmap 映射到虚拟地址,
格式是PIXEL_FORMAT_YUV_SEMIPLANAR_420,

vpssChn =2
mmapAddr_y = HI_MPI_SYS_Mmap(stFrame.stVFrame.u32PhyAddr[0],s32FrameW*s32FrameH);
mmapAddr_uv = HI_MPI_SYS_Mmap(stFrame.stVFrame.u32PhyAddr[1],s32FrameW*s32FrameH/2);

然后转换yuv值到rgb,并保存成bmp文件,但是查看bmp文件,发现图片有重影,部分区域色彩也不对 ,

转换算法如下:
int FindYUVPix(unsigned char *buff_y,unsigned char *buff_uv,int num,int *r,int *g,int *b)
{
    int y,u,v;

    /*
     *  get y
     */
    y = buff_y[num];

    /*
     * get vuvu
     */
    if(0 == (num/2)%2)      //v
    {
        u = buff_uv[num/2 + 1];
        v = buff_uv[num/2];
    }
    else              //u
    {
        u = buff_uv[num/2];
        v = buff_uv[num/2-1];
    }
       
    //yuv->rgb之间的转换
    JudgeRGB(y,u,v,r,g,b);
}


同时间vpssChn 1绑定venc 截jpeg图片,是完全正常的

请问哪个环节出了问题呢
我来回答
3783
0
0
回答
6个
易百纳技术社区
zhuangweiye 发布于2017-10-16 16:56:53
看上去是UV完全错了

看看UV的stride是否对?
0
易百纳技术社区
windyhll 发布于2017-10-16 17:10:46
打印信息看:
y_stride=1280,uv_stride=1280
0
易百纳技术社区
windyhll 发布于2017-10-16 17:12:09
[quote][url=forum.php?mod=redirect&goto=findpost&pid=79479&ptid=37983]zhuangweiye 发表于 2017-10-16 16:56[/url]
看上去是UV完全错了

看看UV的stride是否对?[/quote]

打印信息看y_stride=1280,uv_stride=1280 ,
0
易百纳技术社区
goodman 发布于2017-10-16 17:38:37
wooshang@126.com
先保存为yuv用工具看看有没有问题,YUV转rgb的算法又个一个601格式的,一个是709的
0
易百纳技术社区
windyhll 发布于2017-10-16 18:31:36
[quote][url=forum.php?mod=redirect&goto=findpost&pid=79489&ptid=37983]goodman 发表于 2017-10-16 17:38[/url]
先保存为yuv用工具看看有没有问题,YUV转rgb的算法又个一个601格式的,一个是709的[/quote]

y_stride=1280,uv_stride=1280 这个 打印信息,对比我之前提取y值和uv值得算法,应该是没问题的吧,
0
易百纳技术社区
windyhll 发布于2017-10-17 10:28:05
感谢大佬提醒,确实是uv值提取的顺序不对,对yuv420格式, Y值与UV值对应关系没有看清楚。
0

Markdown 语法

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

Markdown 语法

  • 加粗 **内容**
  • 斜体 *内容*
  • 删除线 ~~内容~~
  • 引用 > 引用内容
  • 代码 `代码`
  • 代码块 ```编程语言↵代码```
  • 链接 [链接标题](url)
  • 无序列表 - 内容
  • 有序列表 1. 内容
  • 缩进 内容
  • 图片 ![alt](url)
+ 添加网盘链接/附件
或将文件直接拖到这里
悬赏:
EBC
网盘
* 网盘链接:
* 提取码:
悬赏:
EBC
相关问答
无更多相似问答 去提问
Loading...
易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区
易百纳技术社区
在专栏模块发布专栏,可获得其他E友的打赏
易百纳技术社区
回答悬赏问答,被题主采纳后即可获得悬赏金
易百纳技术社区
在上传资料时,有价值的资料可设置为付费资源
易百纳技术社区
达到一定金额,收益即可提现~
收益也可用来充值ebc,下载资料、兑换礼品更容易
易百纳技术社区
活动规则
  • 1.周任务为周期性任务,每周周一00:00刷新,上周完成的任务不会累计到本周,本周需要从头开始任务,当前任务完成后才可以完成下一个任务
  • 2.发布的专栏与资料需要与平台的板块有相关性,禁止注水,专栏/资料任务以审核通过的篇数为准
  • 3.任务完成后,现金奖励直接打款到微信账户;EBC/收益将自动发放到个人账户,可前往“我的钱包”查看;其他奖励请联系客服兑换
  • 4.每周最后三个任务将会有以下奖品掉落:社区热卖开发板、小米音响、视频年度会员、京东卡、华为手机等等
易百纳技术社区
升级提醒
易百纳技术社区

恭喜您由入门

社区送出礼品一份

请填写您的收件地址,礼品将在3个工作日寄出

易百纳技术社区