从YV12到NV12】的更多相关文章

用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV12先看看 http://www.fourcc.org/yuv.php 上比较标准的定义: YV12 This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by…
Media SDK的decoder,vpp,encoder对输入输出格式有着严格的限制,现在仅仅支持NV12.那么如何从其他格式转化为NV12是日常工作中经常遇到的事情.本篇文章以此为目的,讨论如何将YV12格式转化为NV12格式. YV12格式是常用的CODEC格式,它的格式如图1所示. 图1 YV12格式 图1中:W表示图像的宽度,即Width的缩写.H表示图像的高度,即Height的缩写Stride表示图像行的跨度,超出Width部分为填充数据,主要目的是为了字节对齐,一般以16字节或者3…
转自:http://www.latelee.org/my-study/yuv-learning-yuv420p-to-rgb24.html 对于YUV420的格式,网上有一大堆资料,这里就不说了.直奔主题,给出如何转换的函数,一如既往,只用代码说事. YUV420有打包格式(Packed),一如前文所述.同时还有平面格式(Planar),即Y.U.V是分开存储的,每个分量占一块地方,其中Y为 width*height,而U.V合占Y的一半,该种格式每个像素占12比特.根据U.V的顺序,分出2种格…
害怕搞忘 直接保存图片…
说明 因工作方面接触到图像处理这一块,需要对手机摄像头采集的原始帧做Rotate或者Scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑. 首先想要了解YUV为何物: https://msdn.microsoft.com/en-us/library/aa904813 上面的链接中微软已经写的很详细了,国内大部分文章都是翻译这篇文章的,如果还有疑问的同学可以参考下面这些大神的博客: 最简单的基于FFmpeg的libswscale的示例(YUV转…
工作问题接触到图像这一块,需要对手机摄像头采集的原始帧做Rotate或者scale,但无奈对此的了解少之又少,于是网上搜了一顿,完事后将最近所学总结一下,以方便之后的人别踩太多坑.       首先想要了解YUV为何物,请猛戳:https://msdn.microsoft.com/en-us/library/aa904813(VS.80).aspx   上面的链接中,微软已经写的很详细了,国内大部分文章都是翻译这篇文章的,如果还有疑问的同学可以参考下面这些大神的博客: 最简单的基于FFmpeg的…
用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪 YV12先看看 http://www.fourcc.org/yuv.php 上比较标准的定义: YV12 This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by…
用videoCapture和IAMStreamConfig拿到的支持的格式列表.发现支持2中图像格式,YV12和NV12.具体是怎么样的内存分布不知道.查了些文档.自己修改了几个图.看出了点端倪YV12先看看 http://www.fourcc.org/yuv.php 上比较标准的定义: YV12 This is the format of choice for many software MPEG codecs. It comprises an NxM Y plane followed by…
转载出处:http://blog.csdn.net/mabeijianxi/article/details/72983362 预热 时光荏苒,光阴如梭,离上一次吹牛逼已经过去了两三个月,身边很多人的女票已经分了又合,合了又分,本屌依旧骄傲单身.上一次啊我们大致说了一些简单的FFmpeg命令以及Java层简单的调用方式,然后有很多朋友在github或者csdn上给我留言,很多时候我都选择避而不答,原因是本库以前用的so包是不开源的,我根本改不了里面东西.但是这一次啊我们玩点大的,我重新编译了FFm…
艺搜简介 基本语法: x264 [options]-o outfile infile 注意与ffmpeg的输入输出文件位置恰好相反: ffmpeg[options][[infile options]-i infile]... {[outfile options] outfile}… [编辑]输入 x264.exe --output NUL C:\input.avs x264 --output /dev/null ~/input.y4m 当输入视频是原始YUV时,还必须指明分辨率.你可能也要使用-…
V4L(video4linux是一些视频系统,视频软件.音频软件的基础,经常时候在需要采集图像的场合,如视频监控,webcam,可视电话,经常使用在embedded linux中是linux嵌入式开发中经常使用的系统接口.它是linux内核提供给用户空间的编程接口,各种的视频和音频设备开发相应的驱动程序后,就可以通过v4l提供的系统API来控制视频和音频设备,也就是说v4l分为两层,底层为音视频设备在内核中的驱动,上层为系统提供的API,而对于我们来说需要的就是使用这些系统API. V4L2是V…
 一.YUV常用格式 YUV是编译true-color颜色空间(color space)的种类,Y'UV, YUV, YCbCr,YPbPr等专有名词都可以称为YUV,彼此有重叠.“Y”表示明亮度(Luminance.Luma),“U”和“V”则是色度与浓度(Chrominance.Chroma) YUV格式有两大类:packed和planar.注:planar还分平面存储和平面打包格式. 对于packed的YUV格式,每个像素点的Y,U,V是连续交错存储的. 对于planar的YUV格式,先连…
目前在人脸识别领域中,网络摄像头的使用很普遍,但接入网络摄像头和人脸识别SDK有一定门槛,在此篇中介绍过虹软人脸识别SDK的接入流程,本文着重介绍网络摄像头获取视频流并处理的流程(红色框内),以下内容仅供参考. 市面上目前有很多款网络摄像头,以海康摄像头为例.海康SDK包含很多接口,接入有一定难度,这里只介绍获取视频帧相关的接口.1.海康SDK接入基本流程a.初始化并登录验证 NET_DVR_Init(); NET_DVR_DEVICEINFO_V30 struDeviceInfo = { 0…
* 音视频入门文章目录 * YUV & RGB 相互转换公式 YCbCr 的 Y 与 YUV 中的 Y 含义一致,Cb 和 Cr 与 UV 同样都指色彩,Cb 指蓝色色度,Cr 指红色色度,在应用上很广泛,JPEG.MPEG.DVD.摄影机.数字电视等皆采此一格式. 因此一般俗称的 YUV 大多是指 YCbCr . RGB to YUV(YCbCr) RGB 范围 [0,255],Y 范围 [16,235] ,UV 范围 [16,239].如果计算结果超过了取值范围要进行截取. Y = 0.25…
背景: 最近在研究音视频,了解YUV这样的格式对于音视频开发比较重要. 虽然这篇文章大部分是转载别人的,但是经过了校对以后,重新排版并补充了一部分内容   概览: 之所以提出yuv格式的原因,是为了解决彩色电视和黑白电视兼容性问题.与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题.并且,YUV不像RGB那样要求三个…
概述  之前介绍了YUV码流的采样格式,下面分析下YUV码流的存储格式,YUV码流的存储格式与采样格式息息相关.总的来讲,YUV存储格式主要分为两种: planar 平面格式 指先连续存储所有像素点的 Y 分量,然后存储 U 分量,最后是 V 分量. packed 打包模式 指每个像素点的 Y.U.V 分量是连续交替存储的. 根据采样方式和存储格式的不同,就有了多种 YUV 格式.这些格式主要是基于 YUV 4:2:2 和 YUV 4:2:0 采样. 常见的基于 YUV 4:2:2 采样的格式如…
引言 因为项目中要做画面共享,所以需要学一点图像相关的知识,首当其冲就是RGB转YUV了,因为图像处理压缩这一块是由专业对口的同事做的,所以呢,我这就是写一下自己的理解,如有不对的地方,还望指正,谢谢. 你可以在这里看到更好的排版. 正文 知识准备 RGB 三原色光模式(RGB color model),又称RGB颜色模型或红绿蓝颜色模型,是一种加色模型,将红(Red).绿(Green).蓝(Blue)三原色的色光以不同的比例相加,以合成产生各种色彩光. RGB32 RGB32使用32位来表示一…
我使用的是海康DS-2CD852MF-E, 200万,网络摄像机,已经比较老了,不过SDK在海康官网下载的,开发流程都差不多. 海康摄像机回调解码后的视频数据格式为YV12,顺便说一下YV12的数据格式   YYYY  V U.   我这个是720P,即1280 * 720分辨率. 那么Y分量的数量为 1280 * 720 = 921600 字节, V = U 数量为Y的1/4, 即921600 / 4 =   230400字节,所以一帧720P的YV12数据量为1382400字节,与断点调试查…
YV12内存布局 1 unsigned char *pY = (unsigned char *)pBuf; unsigned char *pV = pY + nWidth * nHeight; unsigned )*(nHeight>>); //加上出入口数字指纹,以便确认识别出来的是哪个口 ) { pY[]=; pV[]=; pU[]=; } else { pY[]=; pV[]=; pU[]=; }…
NV12格式是yuv420格式的一种,NV12格式的u,v排布顺序为交错排布,假如一幅图像尺寸为W*H,则先Y分量有W*H个,然后U分量和V分量交错排布,U分量和V分量各有W*H/4个,U,V加起来总数是Y分量的一半. NV12内存YUV分量排布如下所示: 下面是CUDA实现的NV12格式到BGR格式的转换代码.StepY,StepUV分别为ffmpeg解码出的源数据中的Y分量一行的宽度和UV分量一行的宽度,比实际的图像宽度要大. __global__ void YCrCb2RGBConver(…
void NV21_T_RGB(unsigned int width , unsigned int height , unsigned char *yuyv , unsigned char *rgb) { const int nv_start = width * height ; u32 i, j, index = 0, rgb_index = 0; u8 y, u, v; int r, g, b, nv_index = 0; for(i = 0; i < height ; i++) { for…
1. //设置CIContext,并从CIImage -> CGImage -> UIImage CIContext *context = [CIContext contextWithOptions:nil]; CGImageRef cgImage = [context createCGImage: outputImage fromRect:qrRect]; UIImage *resultIamge = [UIImage imageWithCGImage:cgImage]; //(如果 直接用…
  YV12和I420的区别 一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的size=width×heigth×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width×heigth×1.5 Bit.在采集到RGB24数据后,需要对这个格式的数据进行第一次压缩.即将图像的颜色空间由RGB2YUV.因为,X264在进行编码的时候需要标准的YUV(4:2:0).但是这里需要注意的是,虽然YV1…
stImgInOut.stImgInfo.enImageType = UV_IMAGE_TYPE_YV12; stImgInOut.stImgInfo.as32Pitch[0] = pStreamImgBuf->getImgWidthStride(0); stImgInOut.stImgInfo.as32Pitch[1] = pStreamImgBuf->getImgWidthStride(1); stImgInOut.stImgInfo.as32Pitch[2] = pStreamImgBu…
这段时间一直在搞视频格式的转换问题,终于最近将一个图片的YUV格式转RGB格式转换成功了.下面就来介绍一下: 由于我的工程是在vs2008中的,其中包含一些相关头文件和库,所以下面只是列出部分核心代码,并不是全部代码. 1.下载一个包含YUV数据的文件也可以自己制作一个该文件 下载地址:YUV数据文件 2.读入YUV数据文件中的yuv数据: 关键代码如下: 2.1读文件代码 unsigned char * readYUV(char *path) { FILE *fp; unsigned char…
最近使用海康威视的5寸一体化智能球,查阅些SDK, 在Winform中海康威视能较好的集成,但是对于Yv12编解码和实时视频流的支持未找到较好的SDK介绍. 因为项目需要是用在XNA游戏框架中,本身有自己的消息处理机制,集成海康威视有些复杂.在结合Goblin XNA.DirectShow的基础上,查询和测试了相关的算法,给出下面的解码方式,分享给遇到同样问题的博友. 具体的SDK引用和DecFunctionEvent事件触发比较简单,请查阅海康威视官方样例中自定义视频流的RealDataCal…
http://blog.csdn.net/xy365/article/details/18735849 ——————————————————————————————————————————————————————————— 一.YUV简介     一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Byte,RGB32的size=width×heigth×4 Byte,如果是I420(即YUV标准格式4:2:0)的数据量是 size=wi…
1. 裁剪时,Y和UV的地址计算: / **** * pa_yuv_main: yuv首地址 * video_frame.loff: 行偏移量 lineoffset * VDO_SIZE_W.VDO_SIZE_H: 原视频宽高 * CROP_X.CROP_Y: 裁剪坐标值 ****/ video_frame.phy_addr[0] = pa_yuv_main + video_frame.loff[0] * CROP_Y + CROP_X; // Y video_frame.phy_addr[1]…
bool YV12ToBGR24_Native(unsigned char* pYUV,unsigned char* pBGR24,int width,int height) { if (width < 1 || height < 1 || pYUV == NULL || pBGR24 == NULL) return false; const long len = width * height; unsigned char* yData = pYUV; unsigned char* vData…
height=width=widthBytes=0;  m_screen.SetWindowPos(&CWnd::wndBottom,0,0,720,576, SWP_NOMOVE | SWP_SHOWWINDOW);  UpdateWindow();  main_window_handle = m_screen.GetSafeHwnd(); if(DD_OK!=(DirectDrawCreateEx(NULL, (void **)&lpdd7, IID_IDirectDraw7, NUL…