YV12和I420的区别
一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Byte,RGB32的size=width×heigth×4,如果是I420(即YUV标准格式4:2:0)的数据量是 size=width×heigth×1.5 Byte。
在采集到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。
补充=============
详细的格式之间的差异可以参考:
FFMPEG 实现 YUV,RGB各种图像原始数据之间的转换(swscale)
附一个YUV播放器的源代码:http://download.csdn.net/detail/leixiaohua1020/6374065
查看YUV的时候也可以下载使用成熟的YUV播放器 ——YUV Player Deluxe:http://www.yuvplayer.com/

yuv420p就是I420格式,使用极其广泛,它的示意图:

YV12,I420,YUV420P的区别相关推荐

  1. 【Android】直播必备之YUV使用总结 —— 常用的几种格式:NV21/NV12/YV12/YUV420P的区别

    转载自 gitzzp 的博客 [Android]直播必备之YUV使用总结 -- 常用的几种格式:NV21/NV12/YV12/YUV420P的区别 转自:http://www.cnblogs.com/ ...

  2. YV12和I420的区别 yuv420和yuv420p的区别

    YV12和I420的区别   YV12和I420的区别        一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的 ...

  3. YV12,I420,YUV420P的区别与格式转换

    YV12和I420的区别 一般来说,直接采集到的视频数据是RGB24的格式,RGB24一帧的大小size=width×heigth×3 Bit,RGB32的size=width×heigth×4,如果 ...

  4. yuv420格式nv12,nv21,I420,YV12互转

    YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...

  5. 笔记:YUV444、YUV422、YUV420、YU12、YV12、NV12、NV21的区别

    介绍 YUV444:指在采样时,Y.U.V采样的比例相同,每个像素占用的分量相同 YUV422:指在采样时,Y 和 UV 分量按照 2: 1 的比例采样,每两个 Y 分量公用一组 UV 分量. YUV ...

  6. 音视频数据处理入门:原始视频格式YUV,NV12,NV21,YV12,YU12(I420)

    我们知道,在Camera中设置Preview的回调函数onPreviewFrame时谷歌推荐我们使用NV21,YV12两种格式,因为这两种格式几乎在所有的设备里都通用.然而,视频的格式远远不止这俩种, ...

  7. YUV420P,YUV420,YUV420SP区别

    YUV420P,YUV420,YUV420SP 都是视频压缩格式中常用的 YUV 颜色编码方式. YUV420P 指的是 YUV 色彩空间的一种,也称为 YUV 4:2:0 planar,其中的 Y. ...

  8. 【OpenGL】用OpenGL shader实现将YUV(YUV420,YV12)转RGB-(直接调用GPU实现,纯硬件方式,效率高)...

    这段时间一直在搞视频格式的转换问题,终于最近将一个图片的YUV格式转RGB格式转换成功了.下面就来介绍一下: 由于我的工程是在vs2008中的,其中包含一些相关头文件和库,所以下面只是列出部分核心代码 ...

  9. 直播推流方案及过程分解

    直播过程 1.相机预览及数据采集Camera - 取数据(onPreviewFrame(Byte[] rawFrameData, Camera camera)) 2.原始帧处理(Rotate旋转/Sc ...

最新文章

  1. php随机生成验证码代码
  2. 插播面试题:海量数据求最大值Topk或者是最小值Topk
  3. codeforces 935E Fafa and Ancient Mathematics 语法树、动态规划
  4. 关于gcc扩展中的宏定义中用 # 和 ##
  5. 谷歌浏览器怎么更新升级
  6. android 使用 audiorecord 和 audiotrack 实现实时录音播放
  7. Spring入门示例及相关概念介绍
  8. 装修好的房子多久能住 入住需要注意什么?
  9. php中正则表达式中的特殊符号
  10. 网管工具使用与技巧大全
  11. 开放世界游戏中的大地图背后有哪些实现技术
  12. win10开启快速启动,关机时电源键一直亮着无法正常关机。。。
  13. N63044-第十周
  14. 【stm32】单片机学习——小车的开环控制
  15. 键盘连接在计算机的,技巧:如何在计算机键盘上输入连字符和破折号?
  16. 【ML/DL】python3学习《机器学习实战》书中的报错及解决办法
  17. 超标量处理器设计——第二章_Cache
  18. 2022年上海市徐汇区创新型中小企业名单公示
  19. 【老生谈算法】matlab实现图像去雾算法——图像去雾
  20. 产品设计中的脉冲群(EFT)防护

热门文章

  1. 信号与系统第二次试验:连续时间 LTI 系统的时域分析
  2. 多目标优化算法:多目标人工兔优化算法(Multi-Objective Artificial Rabbits Optimization ,MOARO)
  3. 【C语言】求符合给定条件的整数集
  4. 星辰天合再度入选Venture50 风云榜及数字科技双榜单
  5. Flutter ListView动态列表
  6. “真爱”黑客 Fooying 手把手教你追妹子 | 宅客故事
  7. JavaScript常用函数整理
  8. Python基础知识-字符串操作
  9. TGame游戏新篇:2.1、硬件设计-决斗台V1.0制作
  10. 《机器学习的随机矩阵方法》