yuv到rgb视频格式转换 66C

#define asm __asm

typedef unsigned char TUInt8; // [0..255]
typedef unsigned long TUInt32;
struct TARGB32 // 32 bit color
{
TUInt8 b,g,r,a; // a is alpha
};

struct TPicRegion // 一块颜色数据区的描述,便于参数传递
{
TARGB32 * pdata; // 颜色数据首地址
long byte_width; // 一行数据的物理宽度(字节宽度);
// abs(byte_width)有可能大于等于width*sizeof(TARGB32);
long width; // 像素宽度
long height; // 像素高度
};

// 那么访问一个点的函数可以写为:
__forceinline TARGB32 & Pixels( const TPicRegion & pic, const long x, const long y)
{
return ( (TARGB32 * )((TUInt8 * )pic.pdata + pic.byte_width * y) )[x];
}

// 颜色饱和函数
__forceinline long border_color( long color)
{
if (color > 255 )
return 255 ;
else if (color < 0 )
return 0 ;
else
return color;
}

__forceinline TARGB32 YUVToRGB32_float( const  TUInt8 Y, const  TUInt8 U, const  TUInt8 V)
{
    TARGB32 result;
    result.b= border_color( 1.164383 * (Y - 16) + 2.017232*(U - 128) );
    result.g= border_color( 1.164383 * (Y - 16) - 0.391762*(U - 128) - 0.812968*(V - 128) );
    result.r= border_color( 1.164383 * (Y - 16) + 1.596027*(V - 128) );
    result.a =   255 ;
     return  result;
}

void DECODE_YUYV_Float( const TUInt8 * pYUYV, const TPicRegion & DstPic)
{
assert((DstPic.width & 1 ) == 0 );

TARGB32 *  pDstLine = DstPic.pdata; 
 for  ( long  y = 0 ;y < DstPic.height; ++ y)
{
     for  ( long  x = 0 ;x < DstPic.width;x += 2 )
    {
        pDstLine[x + 0 ] = YUVToRGB32_float(pYUYV[ 0 ],pYUYV[ 1 ],pYUYV[ 3 ]);
        pDstLine[x + 1 ] = YUVToRGB32_float(pYUYV[ 2 ],pYUYV[ 1 ],pYUYV[ 3 ]);
        pYUYV += 4 ;
    }
    ((TUInt8 *& )pDstLine) += DstPic.byte_width;
}    

}

哪位大神帮忙写个 main()函数 让我看看具体输出是啥样的

0

1个回答

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
matlab程序实现YUV转换为RGB序列
用matlab程序实现YUV视频序列转换为RGB视频序列,可以是单个视频序列的转换,也可以是过个视频序列的批量转换,YUV视频序列的格式可以是4:4:4,也可以是4:2:0.
MATLAB RGB和YUV格式相互转化
本程序是MATLAB对于图像进行RGB与YUV格式的相互转化
yuv与rgb转换与处理工具
支持yuv\rgb的各种处理,比如rgb与yuv的相互转换,视频格式转换,从一段长视频中截取出某几帧等,此工具包里包含多个工具 YUVviewerPlus.exe 对YUVviewer进行了修改,增加一下内容: 1、增加支持的格式:yuv4:4:4, yuv4:2:2, gbmp 2、增加zoom的范围 BMP2GBMP.exe 将一副副的BMP图片合并成一个没有BMP头信息的文件 note:仅支持24位bmp图片 DYUV2SEQ.exe 实现分离的yuv文件转换成YUV序列 4:2:0 ShowDIB.exe BMP图片显示程序,多文档框架 YUV2BMP.exe 实现了YUV转换成24位的BMP图片,实现了批量转换 BMP2SEQ.exe 将一系列24位或8位的BMP图片转换成4:2:0的YUV序列。 DYUV2BMP.exe 将分离的Y,U,V转换成24位的BMP图片,实现了批量转换 GBMP2SEQ.exe 实现包含一组rgb24图片(不含文件头)的单一文件到yuv4:2:0序列文件的转换 SEQ2BMP.exe 实现了SEQ2BMP的程序 输出BMP文件为24位真彩 SeqCut.exe 实现对YUV4:2:0文件的剪切操作 即从序列文件中取出一段序列 SeqSnr.exe 实现了两序列对应帧之间Y分量的SNR求取,并给出平均值 YUV2SEQ.exe 将单帧的YUV文件转换位YUV序列 4:2:0 YUV2SEQ2.exe 将单帧的YUV文件转换位YUV序列 4:2:0 可以选择目标图像的位置和大小
RGBYUV格式互转
编写了RGB到YUV的基本操作代码,以及YUV到RGB的基本代码
飞思卡尔 I.MX6Q-ipu视频流格式转换
前言nn     飞思卡尔的vpu可以实现硬件的编解码,同时也提供了ipu接口,可以实现视频流格式的转换,例如YUV422转为YUV420,YUV422转化为RGB888,当然我们也可以通过软件纯代码实现这些功能,但有时候代码实现总是有许多的缺陷,当你视频流很大时,纯代码就无法实现我们想要的效果。nnnnnn1、ipu环境配置nnnnn n首先,你需要配置好LTIB环境
YUV转RGB图片格式转换
YUV转RGB
Opencv(4) RGB, YUV, GRAY像素格式介绍opencv像素格式转换cvtColor接口
像素格式和灰度图nnRGB: RGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。nnnnYUV: YUV主要用于优化彩色视频信号的传输,使其向后相容老式黑白电视。与RGB视频信号传输相比,它最...
OpenGL实现相机视频NV21格式转RGB格式
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:《手把手教你架构3D游戏引擎》电子工业出版社和《Unity3D实战核心技术详解》电子工业出版社等。CSDN视频网址:http://edu.csdn.net/lecturer/144 最近公司项目做人脸识别追踪,从相机出来的视频格式是YUV420或者说是NV21格式,在面板上显示出来的使用的是R
RGB YUV 转换工具
提供一种RGB和YUV的转换工具,可很方便直观的查阅这这两者的对应关系。
图像 YUV与RGB格式转换
YUV格式具有亮度信息和色彩信息分离的特点,但大多数图像处理操作都是基于RGB格式。 n因此当要对图像进行后期处理显示时,需要把YUV格式转换成RGB格式。 nRGB与YUV的变换公式如下: nYUV(256 级别) 可以从8位 RGB 直接计算:Y = 0.299 R + 0.587 G + 0.114 BnU = - 0.1687 R - 0.3313 G + 0.5 B + 128nV = 0
YUV、RGB-各种格式及转换
相关索引:https://blog.csdn.net/knowledgebao/article/details/84776869nn百度百科RGB:https://baike.baidu.com/item/RGB/342517?fr=aladdinnnRGB色彩模式是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是...
亲测绝对可用!matlab代码 RGB图片转yuv420格式
RGB图片转yuv420格式图片,已通过yuv player打开验证 代码环境: matlab2017
YUV 格式与 RGB 格式的相互转换公式及C++ 代码
YUV 格式与 RGB 格式的相互转换公式最近在用的一个工业相机,输出的图像格式是 YUY2 格式。而在电脑上显示时需要 RGB 格式,所以就花了些时间在网上查了些相关的资料。说实话,网上关于 YUV 与 RGB 格式变换的文章挺多的,本来不需要我再多写这么一篇。但是网上那些文章中给出了各种各样的变换公式,公式的系数又各不相同,让人看了之后越看越糊涂。其实那些文章的公式基本都是对的,只不过因为作者忘
使用libyuv与ffmpeg实现yuv_rgb格式转换性能分析
两组对比:同样分辨率的文件,通过所消耗的时长判断1:YUV to RGB2:YUV 尺寸缩放结果:(文件有84帧图像) 则每帧耗时如下libyuv_I420_to_Rgb 623066ffmpeg_I420_to_Rgb 1815963libyuv_swscale 996027ffmpeg_swscale 1387750可以看出libyuv要更好一点,yuv_to_rgb转换时大概为3倍, 缩放大...
视频基础知识--yuv/rgb像素处理
下图对于理解处理视频过程 完美。可以解决小白一些疑惑nnnn今天从hello word开始学习,希望可以走很远,不要只留在第一课。nn nn一:先普及下基础知识,图像存储的一种格式yuv,就是矩阵。yuv有2中储存格式planar和packed。nnplanar是先连续存储所有像素点的y,再连续存储所有像素点的u,再存存储剩下的v。{y0y1y2y3y4....}{u0u1u2u3u4...}{v...
YUV格式学习:Y转换成RGB24
除了各种YUV格式转换成RGB外,还有一种是只转Y到RGB,显示出来的图像就是灰度图(因为Y是亮度),也可以理解为黑白图吧。
RGBA、YUV色彩格式及libyuv的使用
最近一段时间因为工作的需要,要使用到libyuv。因为之前写录制视频的时候,也要用到rgb转yuv,自己结合网上的资料做了个实现,记录了点笔记,现在索性一起整理下。常用的色彩格式常见的色彩格式主要分为两类,一类是RGBA系列,一类是YUV系列。RGBA系列首先就是rgba系列的格式,RGBA色彩主要用于色彩的显示和描述。常见的有RGBA/ARGB/BGRA/ABGR/RGB/BGR。这些格式都比较好
YUV格式学习:YUV422P、YV16、NV16、NV61格式转换成RGB24
对于YUV422的格式,网上有一大堆资料,这里就不说了。直奔主题,给出如何转换的函数,一如既往,只用代码说事。
Android视频渲染: YUV转RGB
 nn nnAndroid SDK为Camera预览提供了一个Demo,这个Demo的大致流程是初始化一个Camera和一个SurfaceView,SurfaceView被创建之后可以获取到一个SurfaceHolder的实例,将这个SurfaceHolder传递给Camera,这样Camera就会自动的将捕获到的视频数据渲染到SurfaceView上面,这也就是Camera预览的效果。当然更多的...
通过FFmpeg解码和OpenGL的YUV转RGB实现Android视频播放
前言nn在我的博文 https://blog.csdn.net/ericbar/article/details/80506390 中,我们在Android平台上,实现了通过FFmpeg在native(C/C++)层进行视频解码,并通过OpenGL实现了硬件渲染工作,减少CPU的消耗,提高整个视频播放的性能。 n但是,FFmpeg解码后的YUV视频数据,仍然是通过软件方式转成RGB565的,效率极其...
Unity_利用Shader使YUV420p转为RGB,以此渲染出视频
 nn由于项目需求,讨论如何做个播放器,能够实现流畅播放高码率高分辨率的视频。。。    &amp;gt;&amp;gt;&amp;gt;因此决定从共享内存里入手,C++获取本地视频文件写到windows的共享内存nn    &amp;gt;&amp;gt;&amp;gt;unity则从共享内存里读取YUV420p数据贴图到画面nn本文只涉及到获取YUV420P数据后实现播放,至于这数据怎么来的以及相关C++的DLL不进行详细讨论,俺也不清楚n...
NDK开发——FFmpeg实现视频转YUV、视频转RGB显示、音频转PCM、音频播放、音视频同步
项目演示前提准备n编译FFmpeg+CMake并能运行,详细可见我博客n下载libyuv库并编译成libyuv.so库,用于实现转换RGB格式功能nFFmpeg库简介navcodec:编解码,包含navformate:封装格式处理navfilter:滤镜特效处理navdevice:输入输出设备navutil:工具库nswresample:音频采样处理nswscale:视频像素格式转换,缩放等nFFm
数据压缩第二次实验报告——用C语言实现bmp to yuv的图片格式转化
实验目标实验主要要求将图片格式从BMP到YUV的转化,并生成含有至少五幅图片不少于200帧的图像流。
视频编码基础知识——RGB与YUV
任何彩色图像可由不同比例的红色、绿色和蓝色组合而成,即三基色原理。这种表示彩色图像的方法即 RGB 彩色空间。nnnnnn对YUV有了全新的认识。nn注意:4:2:0适合于压缩nn nnPS:小伙伴们可以直接看书,我是为了挑重点,就把自己需要的部分保存起来。nn参考书籍:新一代视频压缩编码标准——H.264/AVC    毕厚杰主编nn nn ...
yuv to rgb
将yuv视频格式转换为rgb图像帧格式,压缩包中含有main.m及其他子程序
将YUV格式转换为RGB格式的图像或视频matlab代码(可运行)
将YUV格式转换为RGB格式的图像或视频的matlab代码 运行说明在里面
彩色空间转换(RGB与YUV格式文件转换)
一、实验原理n1.本次实验是实现RGB格式和YUV格式的互相转换,这里的YUV其实是指数字高清的YCbCr。n根据亮度和色差计算公式,可以得到:nnnY=0.2990R+0.5870G+0.1140B R-Y=0.7010R-0.5870G-0.1140B B-Y=-0.2990R-0.5870G+0.8860B nn2.为使色差信号的动态范围控制在-0.5~+0.5之间,要对色差信
使用FFmpeg将RGB格式图片或视频转换为YUV格式
VC2008项目打包,使用FFmpeg版本为2.2.2 win32bit /* *将RGB转换为YUV420P * *码术 codemanship *http://blog.csdn.net/codemanship *微信公众号: codemanship *本程序实现了RGB像素数据转换为YUV像素数据 *是最简单的FFmpeg视频编码方面的教程。 *通过学习本例子可以了解FFmpeg的图片格式转换的过程。 */
FFmpeg命令行实现将rgb yuv视频转码为mp4视频文件
先放实现代码nnnffmpeg -f rawvideo -pix_fmt rgb24 -s 1920x960 -r 72 -i out.rgb -vcodec libx265 -x265-params lossless=1 -pix_fmt yuv420p -r 36 test.mp4nnn-f rawvideo -pix_fmt rgb24 -s 1920x960 -r 72 -i out.r...
视频播放过程中关于颜色的转换YUV2RGB
视频播放过程中,由于涉及到不同的色域和色彩描述,到底如何做才是最科学的了。nn而且颜色的转换涉及到播放效率问题,是播放器开发过程中非常重要的环节。nn更好的理解颜色转换需要对编码和播放有较深入的理解才能保证其正确性。nn1)输入:Blu-ray节目源:其编码采用的颜色空间是YUV420nn2)输出:显示设备:RGB PCLevel模式nn目前由于蓝光节目源的高码流特性,现在节目源的颜色空间都是YU...
rgb转yuv420源代码(C语言)
代码是用C语言写的,实现rgb24格式转yuv420格式,代码是项目源代码里一个单独的模块,本人一直在用,供大家参考。
YUV和RGB的相互转换实验报告
1、彩色空间转换的公式及分析;2、实验流程分析;3、关键代码及分析;4、实验结果及分析;5、结论
很好用的YUV,RGB播放器
很好用的YUV,RGB播放器,可以进行各种参数的设置,可以用于流媒体开发测试。下载链接:http://download.csdn.net/download/ztower/10212211
RGB格式的图片如何转换成yuv
/*#include n#include n#include n#include nusing namespace std;nusing namespace cv;nnnint main()n{nifstream fin("raw.txt");nif (!fin)ncout nnnvector result;nnnint tmp;nwhile (fin >>
YUV格式学习:YUV420P、YV12、NV12、NV21格式转换成RGB24
对于YUV420的格式,网上有一大堆资料,这里就不说了。直奔主题,给出如何转换的函数,一如既往,只用代码说事。
python实现yuv转RGB图片程序
全套源码下载地址:https://download.csdn.net/download/bvngh3247/10774909rn主程序:rnimport osrnimport cv2rnimport numpy as nprnfrom PIL import Imagern#from scipy import miscrnimport utilty as utilrnrnsearch_path = 'E:/stitc...
从零开始学习音视频编程技术(十五) YUV420P转RGB32
原文地址:http://blog.yundiantech.com/?log=blog&id=19nn上一节讲解了YUV420P格式的内容。nn我说过,我们不是为了做研究。 平白无故讲了YUV420P的理论知识,要是不做点什么总说不过去吧。 那么,我们就练练刀,写个播放YUV420P的程序吧,将前面保存的YUV420P图像用自己写的播放器播放出来。nnnnnn这里我们还是一样使用
视音频数据处理入门:RGB、YUV像素数据处理
有段时间没有写博客了,这两天写起博客来竟然感觉有些兴奋,仿佛找回了原来的感觉。前一阵子在梳理以前文章的时候,发现自己虽然总结了各种视音频应用程序,却还缺少一个适合无视音频背景人员学习的“最基础”的程序。因此抽时间将以前写过的代码整理成了一个小项目。
yuv播放器/rgb播放器
在firstime yuvplayer1.3框架的基础上,根据当前序列的特征进行了扩展:nn1、支持YUV4:0:0 YUV4:2:0 YUV4:4:4 .rgb格式 .bgr格式nn2、支持8bit到16bit位深序列的显示nn3、支持以64x64为单位查看序列 支持以8x8为单位查看序列nn4、支持以bmp格式保存当前窗口,并自动以当前帧的信息为保存名nn5、能过显示各个分量的像素值nnnnn...
RGB与YUV之间的转换
一.RGB模型与YUV模型nn1.RGB模型n我们知道物理三基色分别是红(Red)、绿(Green)、蓝(Blue)。现代的显示器技术就是通过组合不同强度的红绿蓝三原色,来达成几乎任何一种可见光的颜色。在图像储存中,通过记录每个像素的红绿蓝强度,来记录图像的方法,称为RGB模型 (RGB Model)。常见的图片格式中,PNG和BMP这两种就是基于RGB模型的。n2.YUV模型n除了RG
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 ios开发视频格式转换 开发教程视频 微信视频