一. 缘起
Android中使用MediaCodec做编码时,如果使用MediaCodec的buffer->buffer模式,现阶段一般而言都需要做颜色空间转换,一般Android的Camera支持NV21与YV12格式,而遍历Android上编码器支持格式时,一般都表示如: COLOR_FormatYUV420SemiPlanar COLOR_FormatYUV420PackedPlanar 等格式.所以我们需要了解一下MediaCodec表示的格式与Camera表示的格式有什么不同.
二. 干货
1. COLOR_FormatYUV420SemiPlanar = NV12 = 21
如标题,具体格式比如一个4x4的像素,表示可以如下:
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
U V U V
U V U V
2. COLOR_FormatYUV420PackedSemiPlanar =NV21 = 39
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
V U V U
V U V U
3. COLOR_FormatYUV420Planar = i420 = YV21 =19
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
U U U U
V V V V
4. COLOR_FormatYUV420PackedPlanar = YV12 = 20
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
V V V V
U U U U
如有不对请指正,谢谢