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)。但是这里需要注意的是,虽然YV12也是(4:2:0),但是YV12和I420的却是不同的,在存储空间上面有些区别。如下:
YV12 : 亮度(行×列) + V(行×列/4) + U(行×列/4)
I420 : 亮度(行×列) + U(行×列/4) + V(行×列/4)
可以看出,YV12和I420基本上是一样的,就是UV的顺序不同。
继续我们的话题,经过第一次数据压缩后RGB24->YUV(I420)。这样,数据量将减少一半,为什么呢?呵呵,这个就太基础了,我就不多写了。同样,如果是RGB24->YUV(YV12),也是减少一半。但是,虽然都是一半,如果是YV12的话效果就有很大损失。然后,经过X264编码后,数据量将大大减少。将编码后的数据打包,通过RTP实时传送。到达目的地后,将数据取出,进行解码。完成解码后,数据仍然是YUV格式的,所以,还需要一次转换,这样windows的驱动才可以处理,就是YUV2RGB24。
YUY2 是 4:2:2 [Y0 U0 Y1 V0]
附一个YUV播放器的源代码:http://download.csdn.net/detail/leixiaohua1020/6374065
yuv420p就是I420格式,使用极其广泛,它的示意图:
<wbr></wbr>
相关推荐
1)YV12_2_I420; 2)I420_2_YV12; 3)NV12_2_I420; 4)I420_2_NV12; 5)NV21_2_YV12; 6)YV12_2_NV21; 7)I420_2_rgb32; 8)rgb32_2_I420; 9)I420_2_rgb24; 10)rgb24_2_I420。
Android常用的几种格式:NV21/NV12/YV12/YUV420P相互转换 java代码, YV12 To NV21, I420 To NV21,YV12Resize, flipYUV420, NV21ToBitmap
java视频格式NV21/NV12/YV12/YUV420P的转换.....................................
Unity 工具之 YUV(YUV420 :I420,YV12,NV12,NV21)使用 shader 转为 RGB 显示 封装 YUV420ToRGBWrapper 1、首先根据 YUV 对应格式的 YUV 的排列方式,拆分 YUV; 2、然后,在通过 YUV 与 RGB 转换对应公式,进行...
是一个相互转换的工具,在android Camera parameters.setPreviewFormat(ImageFormat.YV12);...YUV420P、I420、NV12、YV12格式转NV12保存图片 // 将yv12的帧转化为h254的帧 ?如果你输出格式是nv21 或者 yuy2 转图片
将yuv420格式图像文件的NV12排列转化成YV12的小程序。
从磁盘中读取YUY420(YV12)文件解析处理按YUY2(YUV420)格式写入磁盘,利用格式检查工具可以进行检查
Camera onPreview中byte[] 转换为Bitmap 在录像时设置了YV12要保存图片时 YV12或者NV12时要转换时所用的工具的优化
做美颜要进行格式转换,就做了两种格式的互转,( YUV420(YV12)与YUY2(YUV422,YUYV)格式互转
YV16转I420 YV16转NV16 YUY2转NV12 的YUV视频格式转换c代码
用java实现的,可以把yv12的图片压缩到想要的分辨率。文件中还有YV12和I420转NV21的算法。
YUV420平面格式:YUV420(I420);YV12; YUV422平面格式:YUV422(I422);YV16; YUV444格式:YUV444; YUV422交织格式:YUY2(YUYV);YVYU;UYVY;VYUY; 半平面格式:NV12(也叫YUV420SP);NV21;NV16(也叫YUV422SP);NV61 支持...
基于D3D的YUV视频显示源代码,可以同时支持YV12、I420、NV12、YUY2、UYVY、RGB24、RGB32、RGB555、RGB565格式。支持半透明文本叠加。Windows XP SP2 DXSDK9.0c 9800GT测试通过。
RGB与YV12数据之间互相转换,可RGB转YV12,也可以YV12转RGB,原图为24位BMP,已经修正BMP数据对齐,保存到BMP算法已优化,里面带一个YUV播放器,采用vc6编写
该图片为yv12格式,宽高为960x540。主要用于代码验证。后面的信息没有用,可以不看。
YUV数据格式支持NV21、YV12、YUV420_888,对应Android Camera1API和Camera2 API的YUV处理。 这段时间在做一些Android Camera数据处理相关的工作,涉及到YUV转RGBA。 由于对性能要求极高,我采用了多种解决方案。 ...
qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12 qt opengl 渲染 显示 yv12
Android平台采集Camera的YUV原始数据后使用OpenGLES2.0显示,内置YV12格式的YUV分量分离。 附件为完整例子,感谢“李狗蛋52635”提供的GLProgram类。
java YV12 转化代码, YV12 To NV21, I420 To NV21,YV12Resize, flipYUV420, NV21ToBitmap
先yv12数据,把yv12文件直接拖拽到显示窗口