【Android音视频】Android—YUV格式深入浅出

Android音视频—YUV格式深入浅出

文章参考:

  1. 图文详解YUV420数据格式
  2. YUV主要采样格式理解
  3. YUV格式详解
  4. 百度百科和维基百科

概述

本文基于Android音视频开发时需要的,对基础视频流YUV格式的认识。主要描述对YUV的基本认识YUV格式的区别Android音视频开发时常用到的YUV格式处理,转换,显示方法等。YUV格式的认识很多引用和参考上述博文,做了一些总结,也包括一些个人的理解,还有许多开发时遇到的功能或者问题的总结。

一、什么是YUV?

YUV是一种颜色编码格式,可以说YUV流媒体是原始流数据,大部分的视频领域都在使用。他与RGB类似,但RGB更多的用于渲染时,而YUV则用在数据传输,因为它占用更少的频宽。当然,实时通讯为了降低带宽都会采用H264/H265编码。从字面意思理解,YUV的含义:Y代表亮度信息(灰度),UV分别代表色彩信息。YUV的常用名称有许多,如YUV422这是大部分镜头出来的数据,还有许多(yuv420,yuv444等)。


YUV的 planar和packed的差别?

这是yuv格式的两大类

  • planar格式:连续存储所有像素点Y,然后是所有像素点U,接着是V

  • packed格式:所有像素点的YUV信息连续交错存储

      比如:
      	YUV420P:YYYYYYYY UU VV 
      	YUV420: YUV YUV YUV 
    

YUV,YCbCr,YPbPr写法的含义

它们分别代表在不同领域时使用的名称,总的大类都是一致的。主流上所说的YUV即是YCbCr

  • YCbCr:其中Y是指亮度分量,Cb指蓝色色度分量,而Cr指红色色度分量
  • YPbPr:他和YCbCr的区别在于YCbCr是数字系统的标识,YPbPr是模拟系统的标识。

怎么理解YUV后面的三个数字呢?

数字代表yuv信息在像素点中的分布状况,为了维持人的肉眼观感,通常需要每个像素点保存8bit的亮度,每2x2个点保存至少一个Cb和Cr值,如下所示(要理解它的排列就要知道,它在量化8bit之后,每个像素占用大小,可以参考文章:图文详解YUV420数据格式,它里面的描述图很好理解):

  1. YUV444采样,每个Y对应一组UV,8bit量化,每个像素占用3个字节。

    • 四个像素点: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
    • 存放码流: Y0 U0 V0 Y1 U1 V1 Y2 U2 V2 Y3 U3 V3
  2. YUV422采样,每2个Y对应一组UV,由两个水平方向相邻的像素组成的宏像素需要占用4字节内存,亮度2个字节,两个色度各1个字节。

    • 四个像素点: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
    • 存放码流: Y0 U0 Y1 V1 Y2 U2 Y3 V3
  3. YUV411采样,每4个Y对应一组UV,由4个水平方向相邻的像素组成的宏像素需要占用6字节内存,亮度4个字节,两个色度各1个字节。

    • 四个像素点: [Y0 U0 V0] [Y1 U1 V1] [Y2 U2 V2] [Y3 U3 V3]
    • 存放码流: Y0 U0 Y1 Y2 V2 Y3
  4. YUV420采样,每4个Y对应一组UV,每个由2x2个2行2列相邻的像素组成的宏像素需要

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值