`

YV12,I420,YUV420P的区别

 
阅读更多
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的转换

    Android常用的几种格式:NV21/NV12/YV12/YUV420P相互转换 java代码, YV12 To NV21, I420 To NV21,YV12Resize, flipYUV420, NV21ToBitmap

    YUV420P、YV12、NV12、YV12格式转NV12保存图片

    是一个相互转换的工具,在android Camera parameters.setPreviewFormat(ImageFormat.YV12);...YUV420P、I420、NV12、YV12格式转NV12保存图片 // 将yv12的帧转化为h254的帧 ?如果你输出格式是nv21 或者 yuy2 转图片

    Unity 工具之 YUV 使用 Shader 转为 RGB 显示封装 YUV420ToRGBWrapper

    Unity 工具之 YUV(YUV420 :I420,YV12,NV12,NV21)使用 shader 转为 RGB 显示 封装 YUV420ToRGBWrapper 1、首先根据 YUV 对应格式的 YUV 的排列方式,拆分 YUV; 2、然后,在通过 YUV 与 RGB 转换对应公式,进行...

    YUY420(YV12)转YUY2(YUV420),读取yuv文件转成YUY2文件

    YUY420(也称为YV12)和YUY2(也称为YUV422)是两种不同的YUV格式,它们在存储和处理视频帧时具有不同的布局和效率。这篇文章将深入探讨这两种格式以及如何在它们之间进行转换。 YUY420(YV12)格式是YUV色彩空间的...

    GRAY8、YUV420P、YUV422P、YUV444P、YUYV422、RGB24间任意两个互转

    - YUV420P:也称为I420或YV12,是最常见的YUV格式。在这个格式中,每个Y分量都有一个对应的U和V分量,但它们是4:2:0采样,即对于每4个Y像素,才有1个U和1个V分量,这有助于减少存储和带宽需求。 - YUV422P:与420...

    ffmpeg编程读取摄像头信息,保存为裸yuv420p、yuyv422视频流

    在本文中,我们将探讨如何使用FFmpeg编程接口来读取摄像头输入,并将其保存为裸格式的YUV420p和YUYV422视频流。 首先,我们需要了解YUV色彩空间。YUV是视频编码中常用的一种颜色模型,主要用于降低存储和传输的带宽...

    YUVRenderScript:史上最强YUV转换RenderScript,支持转换为RGBA、BGRA,同时支持旋转和翻转。 YUV数据格式支持NV21、YV12、YUV420_888,对应Android Camera1API和Camera2 API的YUV处理

    YUV数据格式支持NV21、YV12、YUV420_888,对应Android Camera1API和Camera2 API的YUV处理。 这段时间在做一些Android Camera数据处理相关的工作,涉及到YUV转RGBA。 由于对性能要求极高,我采用了多种解决方案。 ...

    查看yuv格式文件的工具,YUVPlayer

    查看yuv格式文件的工具,使用简单 附带一个yuv格式文件test_yuv420p_320x180.yuv,可以打开查看 支持YV12,IYUV(I420) ,YV16 ,YUYV(YUNV,V422,YUY2) ,YVYU,UYVY(UYNV,Y422),IYU2,IUYV,NV12

    YUV格式讲解.pdf

    YUV420P格式具体分为YU12和YV12两种。在YU12(I420格式)中,数据的排列顺序是首先所有的Y分量,然后是U分量,最后是V分量。YV12与YU12类似,不同的是U和V的存储顺序相反。两者可以使用相同的算法处理,只是需要注意...

    YUV编码详细官方解析

    YUV编码有多种格式,如I420、NV12、YV12和NV21,这些格式主要根据色度抽样方式(如4:2:0)和数据存储布局(Packeted或Planar)来区分。例如,YUV420P(I420)是三平面存储,每个分量(Y、U、V)都有独立的矩阵;而...

    YUV格式详解,主要介绍YUV采样、内存分布等相关基础知识

    - **平面格式(Planar)**:Y、U、V分量分别存储在独立的数组中,便于处理和编码,如YUV420p(YU12或I420)。 - **半平面格式(Semi-Planar)**:Y分量单独存储,U和V共用一个平面,如NV12。 - **打包格式...

    h264转成YUV格式

    4. **YUV格式选择**:YUV有多种存储格式,如NV12、I420、YV12等,每种格式的存储方式和数据排列顺序不同。在转换过程中,需要根据目标平台或应用的需求选择合适的YUV格式。 5. **像素格式转换**:解码后的RGB或...

    OMX的整体架构以及codec、YUV的基本概念

    YUV有不同的子格式,如YUV420p、I420、YV12、NV12和NV21。这些格式的主要区别在于Y、U、V分量的存储布局和采样率。YUV420p是一种常见的格式,其中Y分量采样率为4:2:0,意味着对于每4个Y采样点,有1个U和1个V采样点。...

    颜色空间转换全集合CSconvert

    "CSConvertKit" 提供的这些转换函数能够帮助开发者处理不同格式的视频数据,例如从I420转换到NV12,或者将YUV420P转换为RGB24等,这对于跨平台的视频处理和播放至关重要。在编码和解码过程中,颜色空间的正确转换是...

    Android使用MediaCodec将摄像头采集的视频编码为h264

    Android使用MediaCodec将摄像头采集的视频编码为h264 Android平台上,MediaCodec是Android 4.1(Jelly Bean)引入的一个新的多媒体编码解码器框架,它提供了一个统一的接口来访问各种硬件编码器和解码器。...

Global site tag (gtag.js) - Google Analytics