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>
相关推荐
Android常用的几种格式:NV21/NV12/YV12/YUV420P相互转换 java代码, YV12 To NV21, I420 To NV21,YV12Resize, flipYUV420, NV21ToBitmap
是一个相互转换的工具,在android Camera parameters.setPreviewFormat(ImageFormat.YV12);...YUV420P、I420、NV12、YV12格式转NV12保存图片 // 将yv12的帧转化为h254的帧 ?如果你输出格式是nv21 或者 yuy2 转图片
Unity 工具之 YUV(YUV420 :I420,YV12,NV12,NV21)使用 shader 转为 RGB 显示 封装 YUV420ToRGBWrapper 1、首先根据 YUV 对应格式的 YUV 的排列方式,拆分 YUV; 2、然后,在通过 YUV 与 RGB 转换对应公式,进行...
YUY420(也称为YV12)和YUY2(也称为YUV422)是两种不同的YUV格式,它们在存储和处理视频帧时具有不同的布局和效率。这篇文章将深入探讨这两种格式以及如何在它们之间进行转换。 YUY420(YV12)格式是YUV色彩空间的...
- YUV420P:也称为I420或YV12,是最常见的YUV格式。在这个格式中,每个Y分量都有一个对应的U和V分量,但它们是4:2:0采样,即对于每4个Y像素,才有1个U和1个V分量,这有助于减少存储和带宽需求。 - YUV422P:与420...
在本文中,我们将探讨如何使用FFmpeg编程接口来读取摄像头输入,并将其保存为裸格式的YUV420p和YUYV422视频流。 首先,我们需要了解YUV色彩空间。YUV是视频编码中常用的一种颜色模型,主要用于降低存储和传输的带宽...
YUV数据格式支持NV21、YV12、YUV420_888,对应Android Camera1API和Camera2 API的YUV处理。 这段时间在做一些Android Camera数据处理相关的工作,涉及到YUV转RGBA。 由于对性能要求极高,我采用了多种解决方案。 ...
查看yuv格式文件的工具,使用简单 附带一个yuv格式文件test_yuv420p_320x180.yuv,可以打开查看 支持YV12,IYUV(I420) ,YV16 ,YUYV(YUNV,V422,YUY2) ,YVYU,UYVY(UYNV,Y422),IYU2,IUYV,NV12
YUV420P格式具体分为YU12和YV12两种。在YU12(I420格式)中,数据的排列顺序是首先所有的Y分量,然后是U分量,最后是V分量。YV12与YU12类似,不同的是U和V的存储顺序相反。两者可以使用相同的算法处理,只是需要注意...
YUV编码有多种格式,如I420、NV12、YV12和NV21,这些格式主要根据色度抽样方式(如4:2:0)和数据存储布局(Packeted或Planar)来区分。例如,YUV420P(I420)是三平面存储,每个分量(Y、U、V)都有独立的矩阵;而...
- **平面格式(Planar)**:Y、U、V分量分别存储在独立的数组中,便于处理和编码,如YUV420p(YU12或I420)。 - **半平面格式(Semi-Planar)**:Y分量单独存储,U和V共用一个平面,如NV12。 - **打包格式...
4. **YUV格式选择**:YUV有多种存储格式,如NV12、I420、YV12等,每种格式的存储方式和数据排列顺序不同。在转换过程中,需要根据目标平台或应用的需求选择合适的YUV格式。 5. **像素格式转换**:解码后的RGB或...
YUV有不同的子格式,如YUV420p、I420、YV12、NV12和NV21。这些格式的主要区别在于Y、U、V分量的存储布局和采样率。YUV420p是一种常见的格式,其中Y分量采样率为4:2:0,意味着对于每4个Y采样点,有1个U和1个V采样点。...
"CSConvertKit" 提供的这些转换函数能够帮助开发者处理不同格式的视频数据,例如从I420转换到NV12,或者将YUV420P转换为RGB24等,这对于跨平台的视频处理和播放至关重要。在编码和解码过程中,颜色空间的正确转换是...
Android使用MediaCodec将摄像头采集的视频编码为h264 Android平台上,MediaCodec是Android 4.1(Jelly Bean)引入的一个新的多媒体编码解码器框架,它提供了一个统一的接口来访问各种硬件编码器和解码器。...