windyhll

windyhll

0个粉丝

2

问答

0

专栏

0

资料

windyhll  发布于  2017-10-16 16:25:15
采纳率 0%
2个问答
4888

3516A HI_MPI_VPSS_GetChnFrame获取视频帧信息

 
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图片,是完全正常的

请问哪个环节出了问题呢
我来回答
回答6个
时间排序
认可量排序

zhuangweiye

8个粉丝

0

问答

0

专栏

0

资料

zhuangweiye 2017-10-16 16:56:53
认可0
看上去是UV完全错了

看看UV的stride是否对?

windyhll

0个粉丝

2

问答

0

专栏

0

资料

windyhll 2017-10-16 17:10:46
认可0
打印信息看:
y_stride=1280,uv_stride=1280

windyhll

0个粉丝

2

问答

0

专栏

0

资料

windyhll 2017-10-16 17:12:09
认可0
[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 ,

goodman

2个粉丝

30

问答

18

专栏

17

资料

goodman 2017-10-16 17:38:37
认可0
先保存为yuv用工具看看有没有问题,YUV转rgb的算法又个一个601格式的,一个是709的

windyhll

0个粉丝

2

问答

0

专栏

0

资料

windyhll 2017-10-16 18:31:36
认可0
[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值得算法,应该是没问题的吧,

windyhll

0个粉丝

2

问答

0

专栏

0

资料

windyhll 2017-10-17 10:28:05
认可0
感谢大佬提醒,确实是uv值提取的顺序不对,对yuv420格式, Y值与UV值对应关系没有看清楚。
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

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

Markdown 语法

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

举报类型

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

详细说明

易百纳技术社区