记录hi3516a+pinknoise实现YUV420sp2RGB

原创 2018年04月16日 09:41:39

手头项目中需要从hi3516a中读取图像实现YUV2RGB,但项目中的算法只有最基本的公式法可以成功实现彩图(但仍存在光亮处偏色,具体原因未查到,且耗时较长)。

网上查到的YUV2RGB除了最基本的公式算法其他的基本都无法直接使用,走了很多弯路。

后来发现问题原因:YUV分量排列

hi3516a输出YUV图像分量排列为YYYYVUVU,而通常搜到的代码实现排列为YYYYUUVV。

调用代码(封装):

bool testYUV420toRGB888(unsigned char *pYUV,unsigned char *pBGR24,int width,int height)
{
    if(width < 1 || height < 1 || pYUV == NULL || pBGR24 == NULL)
    {
        return HI_FALSE;
    }

    unsigned char *yData = pYUV;    //Y分量
    unsigned char *vData = &pYUV[width * height];    //V分量
    unsigned char *uData = &pYUV[width * height + 1];    //U分量(VU间隔)

    //unsigned char *uData = &vData[width * height >> 2];

    yuv420_2_rgb888(pBGR24,yData,uData,vData,width,height,width,width>>1,width*3,yuv2rgb565_table,0);    //调用pinknoise代码

    return HI_TRUE;

}

pinknoise中yuv420_2_rgb888代码的修改(4处):

    ......

    uv = READUV(*u_ptr++,*v_ptr++);    //原代码

    v_ptr++;u_ptr++;    //V,U增加指针偏移

    ......

    uv = READUV(*u_ptr,*v_ptr);

    v_ptr++;u_ptr++;

    ......

目前只修改了pinknoise的代码,其他方式后期再作修改。

实现YUV2RGB提速。

pinknoise代码:

http://wss.co.uk/pinknoise/yuv2rgb/

Camera 的 yuv420sp 转 rgb

上次讲的是摄像头的初始化,如果觉得这么就万事OK的话,那就大错特错了。接下来的东西让人感到更加头痛。 在我的这个应用里,不需要把拍下来的图片存储,只需要把预览的图片数据处理一下就好,很自然的我只...
  • rocklee
  • rocklee
  • 2014-04-16 18:27:08
  • 1136

在OpenCV中实现YUV420sp2RGB

YUV420是视频设备常用的编码方式,其内部数据排列方式可参照此博客:图文详解YUV420数据格式 。       使用OpenCV内部函数cvCvtColor(对应OpenCV2函数名为...
  • sinat_28309919
  • sinat_28309919
  • 2017-07-12 19:05:24
  • 846

yuv420sp to rgba 算法

此文版权属于作者所有,任何人、媒体或者网站转载、借用都必须征得作者本人同意! typedef struct yuv2rgb_rgb_t { int r, g, b; } yuv2rgb_rg...
  • lzy0168
  • lzy0168
  • 2013-01-16 13:46:10
  • 2170

用cookie实现浏览记录

首先连接数据库 —————————————————————————— 实力类 package com.items.entity; //商品表 public class Items { ...
  • tuobayi
  • tuobayi
  • 2016-11-14 10:55:42
  • 360

《JavaWeb---利用cookie记录用户的历史浏览》

代码虽少,却遇到了很多问题。感觉也学到了很多东西。 //展示商品,“首页”Servlet package com.fenghuo.cookie; import java.io.IOExceptio...
  • w695050167
  • w695050167
  • 2012-09-14 15:06:04
  • 5772

案例:商品浏览记录的实现

注:采用Model1和(JSP+JavaBean)实现一、实现DBHelper类1.添加数据库jar包到lib目录,在tomcat目录下的lib目录也要添加:mysql-contentor-java-...
  • qq_22348309
  • qq_22348309
  • 2017-04-11 17:24:31
  • 154

JS使用实现记录客户浏览记录

实现使用Cookie记录浏览记录的方式比较多,如使用jquery.cookie.js插件,这里使用js原生实现,当然当中也用到了jquery取值和遍历(就因为jQuery用着太方便了) exDate....
  • cainiao_ACCP
  • cainiao_ACCP
  • 2017-03-17 17:25:22
  • 1083

基于百度地图记录运动轨迹案例分析与实现

目录一、下载百度地图SDK 二、 工程配置 1. 新建Xcode工程 2. 获取Bundle Identifie 3. 申请key 4. 导入框架配置工程 4.1 、引入BaiduM...
  • BaiHuaXiu123
  • BaiHuaXiu123
  • 2016-04-20 01:25:15
  • 6177

商城产品浏览记录,看了又看一种实现思路

商城产品浏览记录,看了又看一种实现思路 很直白的思路。
  • m0sh1
  • m0sh1
  • 2017-02-22 15:32:39
  • 975

js实现搜索历史记录功能

html代码 历史搜索: js代码 //产品搜索并存值 var thisurl="search.aspx?action=search"; function SiteSearch(){ ...
  • qq_22103321
  • qq_22103321
  • 2017-01-18 19:04:09
  • 6817
收藏助手
不良信息举报
您举报文章:记录hi3516a+pinknoise实现YUV420sp2RGB
举报原因:
原因补充:

(最多只允许输入30个字)