标签 image 下的文章

转自: https://blog.csdn.net/byhook/article/details/84037338

音视频实践学习

android全平台编译ffmpeg以及x264与fdk-aac实践
ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器
android全平台编译ffmpeg合并为单个库实践
android-studio使用cmake编译ffmpeg实践
android全平台编译ffmpeg视频解码器实践
android全平台编译ffmpeg支持命令行实践
android全平台编译ffmpeg视频推流实践
android平台下音频编码之编译LAME库转码PCM为MP3
图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别
ubuntu平台下编译vlc-android视频播放器实践

概述

YUV模型是根据一个亮度(Y分量)和两个色度(UV分量)来定义颜色空间,常见的YUV格式有YUY2、YUYV、YVYU、UYVY、AYUV、Y41P、Y411、Y211、IF09、IYUV、YV12、YVU9、YUV411、YUV420等,其中比较常见的YUV420分为两种:YUV420P和YUV420SP。

我们在android平台下使用相机默认图像格式是NV21属于YUV420SP格式

- 阅读剩余部分 -

转自: https://www.cnblogs.com/tid-think/p/10616789.html#:~:text=%E6%8E%A5%E4%B8%8B%E6%9D%A5%E6%98%AFYUV420,%E6%AF%8F%E5%9B%9B%E4%B8%AAy%E5%88%86%E9%87%8F%E5%85%AC%E7%94%A8%E4%B8%80%E4%B8%AAUV%E5%88%86%E9%87%8F%EF%BC%8C%E6%89%80%E4%BB%A5%E6%AF%8F%E4%B8%AA%E5%83%8F%E7%B4%A0%E7%82%B9%E5%8D%A0%E7%94%A81.5%E4%B8%AA%E5%AD%97%E8%8A%82%E7%A9%BA%E9%97%B4%EF%BC%8C%E6%A0%B9%E6%8D%AE%E5%AD%98%E5%82%A8%E9%A1%BA%E5%BA%8F%E4%B8%8D%E4%B8%80%E6%A0%B7%E5%8F%88%E5%88%86%E4%B8%BA%E5%9B%9B%E4%B8%AA%E4%B8%8D%E5%90%8C%E7%9A%84%E7%B1%BB%E5%9E%8B%E3%80%82

前段时间搞x264编码测试,传参的时候需要告诉编码器我的原始数据格式是什么,其中在x264.h头文件中定义了如下一堆类型。

/* Colorspace type */
#define X264_CSP_MASK           0x00ff  /* */
#define X264_CSP_NONE           0x0000  /* Invalid mode     */
#define X264_CSP_I400           0x0001  /* monochrome 4:0:0 */
#define X264_CSP_I420           0x0002  /* yuv 4:2:0 planar */
#define X264_CSP_YV12           0x0003  /* yvu 4:2:0 planar */
#define X264_CSP_NV12           0x0004  /* yuv 4:2:0, with one y plane and one packed u+v */
#define X264_CSP_NV21           0x0005  /* yuv 4:2:0, with one y plane and one packed v+u */
#define X264_CSP_I422           0x0006  /* yuv 4:2:2 planar */
#define X264_CSP_YV16           0x0007  /* yvu 4:2:2 planar */
#define X264_CSP_NV16           0x0008  /* yuv 4:2:2, with one y plane and one packed u+v */
#define X264_CSP_YUYV           0x0009  /* yuyv 4:2:2 packed */
#define X264_CSP_UYVY           0x000a  /* uyvy 4:2:2 packed */
#define X264_CSP_V210           0x000b  /* 10-bit yuv 4:2:2 packed in 32 */
#define X264_CSP_I444           0x000c  /* yuv 4:4:4 planar */
#define X264_CSP_YV24           0x000d  /* yvu 4:4:4 planar */
#define X264_CSP_BGR            0x000e  /* packed bgr 24bits */
#define X264_CSP_BGRA           0x000f  /* packed bgr 32bits */
#define X264_CSP_RGB            0x0010  /* packed rgb 24bits */
#define X264_CSP_MAX            0x0011  /* end of list */
#define X264_CSP_VFLIP          0x1000  /* the csp is vertically flipped */
#define X264_CSP_HIGH_DEPTH     0x2000  /* the csp has a depth of 16 bits per pixel component */

但是这个定义只是对于这个应用而言,对于其他的应用或者场景中,相同的数据格式却有着不同的名字,于是为了弄懂他们的差别关系,检索了一大堆信息,整理了一个图文出来如下。

- 阅读剩余部分 -